diff options
Diffstat (limited to 'tde-i18n-es/docs/tdemultimedia')
149 files changed, 27413 insertions, 0 deletions
diff --git a/tde-i18n-es/docs/tdemultimedia/Makefile.am b/tde-i18n-es/docs/tdemultimedia/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/Makefile.in b/tde-i18n-es/docs/tdemultimedia/Makefile.in new file mode 100644 index 00000000000..233130ac94d --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/Makefile.in @@ -0,0 +1,587 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. juk kioslave artsbuilder noatun kaboodle kmid krec kmix kaudiocreator kscd +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=Makefile.in Makefile.am + +#>+ 2 +docs-am: + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/Makefile.am b/tde-i18n-es/docs/tdemultimedia/artsbuilder/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/Makefile.in b/tde-i18n-es/docs/tdemultimedia/artsbuilder/Makefile.in new file mode 100644 index 00000000000..1361fa34d99 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia/artsbuilder +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. images +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/artsbuilder/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=future.docbook index.docbook arts-structure.png porting.docbook glossary.docbook helping.docbook artsbuilder.docbook detail.docbook midiintro.docbook modules.docbook mcop.docbook gui.docbook faq.docbook index.cache.bz2 midi.docbook tools.docbook Makefile.in digitalaudio.docbook references.docbook apis.docbook Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) arts-structure.png glossary.docbook porting.docbook apis.docbook gui.docbook references.docbook mcop.docbook index.docbook detail.docbook future.docbook artsbuilder.docbook digitalaudio.docbook faq.docbook modules.docbook tools.docbook midi.docbook helping.docbook midiintro.docbook + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder + @for base in arts-structure.png glossary.docbook porting.docbook apis.docbook gui.docbook references.docbook mcop.docbook index.docbook detail.docbook future.docbook artsbuilder.docbook digitalaudio.docbook faq.docbook modules.docbook tools.docbook midi.docbook helping.docbook midiintro.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/$$base ;\ + done + +uninstall-nls: + for base in arts-structure.png glossary.docbook porting.docbook apis.docbook gui.docbook references.docbook mcop.docbook index.docbook detail.docbook future.docbook artsbuilder.docbook digitalaudio.docbook faq.docbook modules.docbook tools.docbook midi.docbook helping.docbook midiintro.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in arts-structure.png glossary.docbook porting.docbook apis.docbook gui.docbook references.docbook mcop.docbook index.docbook detail.docbook future.docbook artsbuilder.docbook digitalaudio.docbook faq.docbook modules.docbook tools.docbook midi.docbook helping.docbook midiintro.docbook ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/artsbuilder/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/apis.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/apis.docbook new file mode 100644 index 00000000000..7200c99fb52 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/apis.docbook @@ -0,0 +1,434 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<chapter id="arts-apis"> +<title +>Interfaces de programación de aplicaciones (APIs) de &arts;</title> + +<sect1 id="api-overview"> +<title +>Introducción</title> +<para +>aRts no es sólo un conjunto de software, también proporciona una serie de APIs para propósitos variados. En esta sección trataré de describir de una forma resumida lo que se supone que hacen esas APIs, y cómo interaccionan. </para> + +<para +>Hay que hacer una importante distinción: la mayoría de las APIs son <emphasis +>independientes del lenguaje y la localización</emphasis +> ya que están especificadas como <emphasis +>mcopidl</emphasis +>. Es decir, se pueden utilizar los servicios que ofrecen desde cualquier lenguaje, implementarlas en cualquier lenguaje, y no será necesario tener en cuenta si se trata de objetos locales o remotos. Esta es una lista de las primeras: </para> + + +<variablelist> +<varlistentry> +<term +>core.idl</term> + <listitem +><para +>Definiciones básicas que forman el núcleo de la funcionalidad MCOP, como el propio protocolo, definiciones del objeto, el intercambiador, el sistema de flujo, etc. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>artsflow.idl</term> + + <listitem +><para +>Aquí está contenido el sistema de transmisión que se utilizará para conectar transmisiones de audio, la definición de <emphasis +>Arts::SynthModule</emphasis +> que es la base de cualquier interfaz que tenga transmisiones y finalmente algunos objetos de audio útiles. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>kmedia2.idl</term> + + + <listitem +><para +>Aquí se define un objeto que puede reproducir un medio, <emphasis +>Arts::PlayObject</emphasis +>. Los reproductores de medios como noatun de KDE serán capaces de reproducir cualquier medio para el que se encuentre un objeto PlayObject. Así que cobra sentido implementar objetos PlayObject para varios formatos (como mp3, video mpeg, midi, wav, ...) en esa base, y, de hecho, ya hay muchos. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>soundserver.idl</term> + + <listitem +><para +>Aquí se define un interfaz para el servidor de sonido global del sistema. El interfaz se llama <emphasis +>Arts::SoundServer</emphasis +>, que implementa funcionalidades como aceptar transmisiones desde la red, reproducir muestras, crear objetos de aRts propios, etc. La transparencia de red está implícita debido al uso de MCOP (como para todo lo demás). </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>artsbuilder.idl</term> + <listitem +><para +>Este módulo define la funcionalidad básica de los gráficos de flujo, es decir, la combinación de objetos sencillos en otro más complejos, definiendo una gráfica de ellos. Define los interfaces básicos <emphasis +>Arts::StructureDesc</emphasis +>, <emphasis +>Arts::ModuleDesc</emphasis +> y <emphasis +>Arts::PortDesc</emphasis +> que contienen una descripción de una estructura, un módulo y un puerto. También hay un modo de obtener una «red viviente de objetos» de estas conexiones y descripciones de valor, utilizando una fábrica. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>artsmidi.idl</term> + + <listitem +><para +>Este módulo define la funcionalidad MIDI básica, como objetos que producen eventos MIDI, lo que es un evento MIDI, un <emphasis +>Arts::MidiManager</emphasis +> para conectar los productores y consumidores de eventos MIDI, etc. Como siempre, la transparencia de red está implicada. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>artsmodules.idl</term> + <listitem +><para +>Aquí hay varios filtros adicionales, osciladores, efectos, retardos, etc. así como todo lo requerido para poder realizar procesamiento de señal y construir instrumentos complejos a partir de estos elementos básicos. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>artsgui.idl</term> + + <listitem +><para +>Se encarga de los objetos visuales. Define el tipo básico <emphasis +> Arts::Widget</emphasis +> del que se derivan todos los módulos del entorno gráfico. Ésto proporciona independencia del conjunto de herramientas, edición visual del entorno gráfico y entornos gráficos serializables. Además, al tener los elementos del entorno gráfico atributos normales, sus valores puede estar conectados directamente a algunos módulos de procesamiento de señal. (Por ejemplo, el valor de un control al corte de un filtro). Como siempre: transparencia de red. </para +></listitem> + +</varlistentry> + +</variablelist> +<para +>Donde es posible, el propio aRts está implementado usando IDL. Por otro lado, hay algunas APIs <emphasis +>específicas del lenguaje</emphasis +> que utilizan C o C++. Lo más correcto es utilizar interfaces IDL donde se pueda, y las otras APIs donde sea necesario. Esta es una lista de APIs específicas del lenguaje: </para> + +<variablelist> + +<varlistentry> +<term +>KNotify, KAudioPlayer (incluido en libtdecore)</term> + + <listitem +><para +>Estas son APIs convenientes para los casos más sencillos y comunes, donde sólo se quiere reproducir una muestra. Las APIs están en C++, optimizado para Qt/KDE, y son lo más sencillas posible. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>libartsc</term> + <listitem +><para +>Interfaz de C para el servidor de sonido. Muy útil para portar aplicaciones antiguas. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>libmcop</term> + + <listitem +><para +>Toda la magia de MCOP se produce aquí. La biblioteca contiene los elementos básicos necesarios que debe conocer para escribir una aplicación MCOP sencilla, el repartidor, temporizadores, administración de entrada/salida, pero también los elementos internos que hacen que funcione el propio protocolo MCOP. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>libartsflow</term> + <listitem +><para +>Además de la implementación de artsflow.idl, incluye algunas utilidades como la conversión del ratio de muestreo. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>libqiomanager</term> + + <listitem +><para +>Integración de MCOP en el bucle de eventos de Qt, cuando escriba aplicaciones Qt utilizando MCOP. </para +></listitem> + +</varlistentry> + +</variablelist> + + + +</sect1> +<sect1 id="knotify"> +<title +>knotify</title> +<para +>Pendiente de escribir. </para> +</sect1> + +<sect1 id="kaudioplayer"> +<title +>kaudioplayer</title> +<para +>Pendiente de escribir. </para> +</sect1> + +<sect1 id="libkmid"> +<title +>libkmid</title> +<para +>Pendiente de escribir. </para> +</sect1> + +<sect1 id="kmedia2"> +<title +>kmedia2</title> +<para +>Pendiente de escribir. </para> +</sect1> + +<sect1 id="soundserver"> +<title +>servidor de sonido</title> +<para +>Pendiente de escribir. </para> +</sect1> + +<sect1 id="artsflow"> +<title +>artsflow</title> +<para +>Pendiente de escribir. </para> +</sect1> + +<sect1 id="capi"> +<title +><acronym +>API</acronym +> de C</title> + +<sect2 id="capiintro"> +<title +>Introducción</title> + +<para +>El <acronym +>API</acronym +> de C de &arts; se diseñó para facilitar la escritura y adaptación de aplicaciones en C al servidor de sonido &arts;. Proporciona funcionalidad de flujos (envío de suceciones de muestras a <application +>artsd</application +>), ya sea exclusivas o no. En la mayoría de las aplicaciones, basta con eliminar unas pocas llamadas al sistema que realizan la comunicación con el dispositivo de audio y sustituirlas por las llamadas a &arts; correspondientes.</para> + +<para +>Yo he realizado dos adaptaciones como demostración del concepto: <application +>mpg123</application +> y <application +>quake</application +>. Los parches se puede obtener <ulink url="http://space.twc.de/~stefan/kde/download/artsc-patches.tar.gz" +>aquí</ulink +>. Usted mismo puede enviar sus propios parches al mantenedor de &arts; o de otros paquetes de software para facilitar el uso de &arts; en su código.</para> + +</sect2> + +<sect2 id="capiwalkthru"> +<title +>Un vistazo rápido</title> + +<para +>Enviar audio al servidor de sonido a través de la <acronym +>API</acronym +> es muy sencillo:</para> +<procedure> +<step +><para +>Incluya el archivo de cabecera utilizando <userinput +>#include <artsc.h></userinput +>.</para +></step> +<step +><para +>Inicialice la <acronym +>API</acronym +> con <function +>arts_init()</function +>.</para +></step> +<step +><para +>Construya una transmisión de muestras con <function +>arts_play_stream()</function +>.</para +></step> +<step +><para +>Configure los parámetros específicos con <function +>arts_stream_set()</function +>.</para +></step> +<step +><para +>Escriba los datos de las muestras en la transmisión con <function +>arts_write()</function +>.</para +></step> +<step +><para +>Cierre la transmisión con <function +>arts_close_stream()</function +>.</para +></step> +<step +><para +>Libere la <acronym +>API</acronym +> con <function +>arts_free()</function +>.</para +></step> +</procedure> + +<para +>Este ejemplo es un pequeño programa que ilustra el funcionamiento:</para> + +<programlisting +>#include <stdio.h> +#include <artsc.h> +int main() +{ + arts_stream_t canal; + char datos[8192]; + int bytes; + int error; + + error = arts_init(); + if (error < 0) + { + fprintf(stderr, "error en arts_init: %s\n", arts_error_text(error)); + return 1; + } + + stream = arts_play_stream(44100, 16, 2, "probar_arts"); + + while((bytes = fread(datos, 1, 8192, stdin)) > 0) + { + error = arts_write(canal, datos, bytes); + if(error < 0) + { + fprintf(stderr, "error en arts_write: %s\n", arts_error_text(error)); + return 1; + } + } + + arts_close_stream(canal); + arts_free(); + + return 0; +} +</programlisting> +</sect2> + +<sect2 id="capiartscconfig"> +<title +>Compilación y enlace: <application +>artsc-config</application +></title> + +<para +>Para compilar y enlazar de un forma sencilla los programas que utilicen la <acronym +>API</acronym +> para C de &arts;, se proporciona la utilidad <application +>artsc-config</application +> que sabe qué bibliotecas son necesarias para el enlace y dónde se encuentran los archivos de inclusión. Se ejecuta utilizando</para> + +<screen +><userinput +><command +>artsc-config</command +> <option +>--libs</option +></userinput +> +</screen> + +<para +>para determinar las bibliotecas, y </para> + +<screen +><userinput +><command +>artsc-config</command +> <option +>--cflags</option +></userinput +> +</screen> + +<para +>para establecer parámetros de compilación de C adicionales. El ejemplo anterior se compilaría con la línea de órdenes:</para> + +<screen +><userinput +><command +>cc</command +> <option +>-o artsctest artsctest.c `artsc-config --cflags` `artsc-config --libs`</option +></userinput> + +<userinput +><command +>cc</command +> <option +>-o artsctest</option +> <option +>artsctest.c</option +> <option +>`artsc-config --cflags`</option +> <option +>`artsc-config --libs`</option +></userinput +> +</screen> + +</sect2> + +<sect2 id="c-api-reference"> +<title +>Referencia de la biblioteca</title> + +<para +>[POR HACER: generar la documentación de artsc.h utilizando kdoc] </para> + +</sect2> + +</sect1> +</chapter> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/arts-structure.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/arts-structure.png Binary files differnew file mode 100644 index 00000000000..41cfadb0d85 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/arts-structure.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/artsbuilder.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/artsbuilder.docbook new file mode 100644 index 00000000000..e2842fe5a39 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/artsbuilder.docbook @@ -0,0 +1,901 @@ +<chapter id="artsbuilder"> +<title +>&arts-builder;</title> + +<sect1 id="overview"> +<title +>Introducción</title> + +<para +>En primer lugar, al tratar de ejecutar &arts-builder;, también se debe estar ejecutando el servidor de sonido (&artsd;). Normalmente, si utiliza &kde; 2.1, esto se hace automáticamente. Sino, puede configurar en &kcontrol; que el servidor de sonido se inicie de forma automática en <menuchoice +><guilabel +>Sonidos y multimedia</guilabel +><guilabel +>Sistema de sonido</guilabel +></menuchoice +>. </para> + +<para +>Al ejecutar &arts;, siempre se ejecutan pequeños módulos. &arts-builder; es una herramienta para la creación de nuevas estructuras de pequeños módulos conectados. Lo único que debe hacer es colocar los módulos en la rejilla. Para hacerlo, elíjalos en el menú <guimenu +>Módulos</guimenu +>, y después pulse en cualquier lugar del espacio verde y gris. </para> + +<para +>Los módulos tienen normalmente puertos (por los que fluyen las señales de audio hacia adentro o hacia afuera). Para conectar dos puertos, pinche en el primero, que provocará que se ponga de color naranja, y después pinche en el segundo. Sólo puede conectar un puerto de entrada (en la parte superior de un módulo) con un puerto de salida (en la parte inferior de un módulo). Si desea asignar un valor fijo a un puerto (o desconectarlo), hágalo mediante una doble pulsación del ratón sobre el mismo. </para> + +</sect1> + +<sect1 id="artsbuilder-tutorial"> +<title +>Tutorial</title> + +<sect2 id="step-1"> +<title +>Paso 1</title> + +<para +>Inicie &arts-builder;. </para> + +<para +>Necesita un módulo Synth_AMAN_PLAY para oír la salida que está creando. Así que cree un módulo Synth_AMAN_PLAY seleccionando <menuchoice +><guimenu +>Módulos</guimenu +> <guisubmenu +>Síntesis</guisubmenu +> <guisubmenu +>Synth_AMAN_PLAY</guisubmenu +></menuchoice +> y pulsando en un espacio vacío del módulo. Póngalo por debajo más o menos de la quinta línea, ya que añadiremos alguna otra cosa por encima. </para> + +<para +>El módulo tendrá un parámetro <parameter +>title</parameter +> (el puerto situado más a la izquierda), y <parameter +>autoRestoreID</parameter +> (al lado del puerto situado más a la izquierda) para su localización. Para rellenarlos, haga una doble pulsación en esos puertos, seleccione un valor constante y teclee <userinput +>tutorial</userinput +> en la casilla de edición. Pulse <guibutton +>Aceptar</guibutton +> para aplicar los cambios. </para> + +<para +>Seleccione <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Ejecutar estructura</guimenuitem +> </menuchoice +>. No oirá absolutamente nada. El módulo de reproducción necesita la entrada de información. Cuando ya haya escuchado un poco el silencio, pinche en <guibutton +>Aceptar</guibutton +> y vaya al paso 2. </para> +</sect2> + +<sect2 id="step-2"> +<title +>Paso 2</title> + +<para +>Cree un módulo Synth_WAVE_SIN (desde <menuchoice +> <guimenu +>Módulos</guimenu +> <guimenuitem +>Síntesis</guimenuitem +> <guimenuitem +>Formas de onda</guimenuitem +></menuchoice +>) y colóquelo encima del módulo Synth_AMAN_PLAY (deje una línea en blanco en el medio). </para> + +<para +>Como ve, se produce una salida, pero requiere un <guilabel +>pos</guilabel +> como entrada. En primer lugar enviemos la salida a los altavoces. Pinche en el puerto <guilabel +>out</guilabel +> de Synth_WAVE_SIN y después en el puerto <guilabel +>left</guilabel +> de Synth_AMAN_PLAY. Voila, se han conectado los dos módulos. </para> + +<para +>Los osciloscopios de &arts; no requieren una frecuencia como entrada, pero sí una posición en la onda. La posición debe estar entre 0 y 1, lo que coloca al objeto estándar Synth_WAVE_SIN en el rango 0..2*pi. Para generar valores oscilantes a partir de una frecuencia, se utilizan los módulos Synth_FREQUENCY. </para> + +<para +>Cree un módulo Synth_FREQUENCY (desde <menuchoice +> <guimenu +>Módulos</guimenu +> <guimenu +>Síntesis</guimenu +> <guimenu +>Oscilación y modulación</guimenu +> </menuchoice +>) y conecte su salida «pos» a la entrada «pos» del módulo Synth_WAVE_SIN. Dele al puerto de frecuencia del generador de frecuencias un valor constante de 440. </para> + + +<para +>Seleccione <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Ejecutar estructura</guimenuitem +></menuchoice +>. Escuchará una onda sinusoidal de 440 Hz en uno de sus altavoces. Cuando ya la haya escuchado, pinche en <guibutton +>Aceptar</guibutton +> y vaya al paso 3. </para> + +</sect2> + +<sect2 id="step-3"> +<title +>Paso 3</title> + +<para +>De acuerdo, sería mejor escuchar la onda en ambos altavoces. Conecte también el puerto derecho de Synth_PLAY al valor de salida de Synth_WAVE_SIN. </para> + +<para +>Cree un objeto Synth_SEQUENCE (desde <menuchoice +><guimenu +>Módulos</guimenu +> <guisubmenu +>Síntesis</guisubmenu +><guisubmenu +>Midi + Secuenciado</guisubmenu +></menuchoice +>). Debería estar en la parte superior de la pantalla. Si necesita más espacio, puede mover los otros módulos seleccionándolos (para seleccionar varios módulos utilice la tecla &Shift;) y arrastrándolos a otro lugar. </para> + +<para +>Ahora conecte la salida de frecuencia de Synth_SEQUENCE a la entrada de frecuencia del módulo Synth_FREQUENCY. Después especifique un valor constante de 0,13 como velocidad de la secuencia (la velocidad es el puerto más a la izquierda). </para> + +<para +>Ahora vaya al puerto más a la derecha (secuencia) de Synth_SEQUENCE e introduzca como valor constante <userinput +>A-3;C-4;E-4;C-4;</userinput +> esto especifica una secuencia. Hay más información en el capítulo Referencia de los módulos. </para> + +<note> +<para +>Synth_SEQUENCE realmente <emphasis +>necesita</emphasis +> una secuencia y la velocidad. Sin eso es probable que se produzcan errores. </para> +</note> + +<para +>Seleccione <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Ejecutar estructura</guimenuitem +></menuchoice +>. Escuchará la reproducción de una bonita secuencia. Cuando ya la haya disfrutado, pulse <guibutton +>Aceptar</guibutton +> y vaya al paso 4. </para> +</sect2> + +<sect2 id="step-4"> +<title +>Paso 4</title> + +<para +>Cree un módulo Synth_PSCALE (en <menuchoice +><guimenu +>Módulos</guimenu +> <guisubmenu +>Síntesis</guisubmenu +> <guisubmenu +>Envoltorios</guisubmenu +> </menuchoice +>). Desconecte el valor de salida de la onda sinusoidal mediante una doble pulsación del ratón y eligiendo <guilabel +>no conectado</guilabel +>. Conecte: </para> + +<orderedlist +><listitem> +<para +>El valor de salida de SIN con el valor de entrada de PSCALE.</para> +</listitem> +<listitem> +<para +>El valor de salida de PSCALE con el izquierdo de AMAN_PLAY.</para> +</listitem> +<listitem> +<para +>El valor de salida de PSCALE con el derecho de AMAN_PLAY.</para> +</listitem> +<listitem> +<para +>El pos de SEQUENCE con el pos de PSCALE.</para> +</listitem> +</orderedlist> + +<para +>Por último, establezca el límite de PSCALE en algún valor, por ejemplo 0,1. </para> + +<para +>Cómo funciona: el módulo Synth_SEQUENCE proporciona información adicional sobre la posición de la nota que se está reproduciendo en ese momento, de tal forma que 0 significa que acaba de comenzar y 1 que ha finalizado. El módulo Synth_PSCALE escala el transmisión de sonido que pasa por él desde un volumen 0 (silencio) hasta 1 (volumen original) y nuevamente a 0 (silencio), de acuerdo con la posición. La posición en la que se produce el pico de audio se puede dar como pos. 0,1 significa que después de que se haya reproducido el 10% de la nota, el volumen alcanzará el máximo, y comenzará a descender en ese punto. </para> + + +<para +>Seleccione <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Ejecutar estructura</guimenuitem +></menuchoice +>. Escuchará la reproducción de una bonita secuencia. Cuando ya la haya disfrutado, pulse <guibutton +>Aceptar</guibutton +> y vaya al paso 5. </para> + +</sect2> + +<sect2 id="step-5-starting-to-beam-data-around"> +<title +>Paso 5: Comenzando a emitir datos ;)</title> + +<para +>Inicie otro &arts-builder;.</para> + +<para +>Ponga un Synth_AMAN_PLAY en él, déle un nombre adecuado. Ponga un Synth_AMAN_DOWNLINK en él y:</para> + +<orderedlist> +<listitem> +<para +>Establezca el bus Synth_BUS_DOWNLINK a audio (es solo un nombre, llámelo 'pepe' si lo desea). </para> +</listitem> +<listitem> +<para +>Conecte el izquierdo de Synth_BUS_DOWNLINK al izquierdo de Synth_AMAN_PLAY. </para> +</listitem> +<listitem> +<para +>Conecte el derecho de Synth_BUS_DOWNLINK al derecho de Synth_AMAN_PLAY. </para> +</listitem> +</orderedlist> + +<para +>Empiece ejecutando la estructura. Como esperaba, no escuchará nada, ... no todavía. </para> + +<para +>Vuelva a la estructura que contiene el módulo Synth_WAVE_SIN y reemplace el módulo Synth_AMAN_PLAY por un Synth_BUS_UPLINK, y déle el nombre 'audio' (o 'pepe' si lo desea). Para borrar módulos selecciónelos y escoja en el menú <menuchoice +><guimenu +>Editar</guimenu +> <guimenuitem +>Eliminar</guimenuitem +></menuchoice +> (o pulse la tecla <keycap +>Supr</keycap +>). </para> + +<para +>Pulse <menuchoice +><guimenu +>Archivo</guimenu +><guilabel +>Ejecutar estructura</guilabel +></menuchoice +>. Escuchará la secuencia con notas escaladas, transportadas a través el bus. </para> + +<para +>Si desea averiguar por qué algo como ésto puede llegar a ser útil, pulse <guibutton +>Aceptar</guibutton +> (en el &arts-builder; que esté ejecutando el bloque Synth_SEQUENCE, puede dejar los otros que se estén ejecutando) y vaya al paso 6. </para> +</sect2> + +<sect2 id="step-6-beaming-for-advanced-users"> +<title +>Paso 6: para usuarios avanzados</title> + +<para +>Elija <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Renombrar</guimenuitem +> </menuchoice +> estructura del menú de artsbuilder que contiene el bloque Synth_SEQUENCE, y llámelo tutorial. Pulse <guibutton +>Aceptar</guibutton +>. </para> + +<para +>Seleccione <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Guardar</guimenuitem +> </menuchoice +>. </para> + +<para +>Inicie otro &arts-builder; y elija <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Cargar</guimenuitem +> </menuchoice +>, y cargue el tutorial de nuevo. </para> + +<para +>Ahora puede seleccionar <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Ejecutar estructura</guimenuitem +></menuchoice +> en ambos &arts-builder;s obteniendo esa estructura. Escuchará dos veces la misma cosa. Dependiendo del momento en el que empiece sonará mejor o peor. </para> + +<para +>Otra cosa que puede ser útil hacer en este momento es: inicie &noatun;, y reproduzca algún <literal role="extension" +>mp3</literal +>. Inicie &artscontrol;. Vaya a <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Ver gestor de audio</guimenuitem +></menuchoice +>. Lo que verá será &noatun; y su estructura de reproducción «tutorial» reproduciendo algo. Lo mejor que puede hacer es: doble pulsación en &noatun;. Obtendrá una lista de los buses disponibles. ¿Lo ve? Puede asignar &noatun; para enviar la salida a través de el bus de audio que su estructura de reproducción proporciona. </para> +</sect2> + +<sect2 id="step-7-midi-synthesis"> +<title +>Step 7: Síntesis de midi</title> + +<para +>Finalmente, ahora debería ser capaz de transformar su onda sinusoidal en un instrumento real. Ésto sólo tiene sentido si tiene algo que le ayude a enviar eventos &MIDI; a &arts;. Describiré aquí como puede usar algún teclado externo, pero un bus midi enterado de la secuencia como &brahms; funcionará mejor. </para> + +<para +>En primer lugar, limpie su escritorio de tal modo que solo tenga un &arts-builder; con la estructura de onda sinusoidal corriendo (no ejecutándose). Entonces, vaya tres veces a <menuchoice +><guimenu +>Puertos</guimenu +><guisubmenu +>Crear señal de audio de entrada</guisubmenu +></menuchoice +>, y tres veces a <menuchoice +><guimenu +>Puertos</guimenu +> <guisubmenu +>Crear señal de audio de salida</guisubmenu +></menuchoice +>. Coloque los puertos en algún sitio. </para> + +<para +>Vaya a <menuchoice +><guimenu +>Puertos</guimenu +><guilabel +>Cambiar posiciones/nombres</guilabel +></menuchoice +> y renombre los puertos a frecuencia, velocidad, pulsado, izquierdo, derecho y hecho. </para> + +<para +>Finalmente, puede borrar el módulo Synth_SEQUENCE, y conectar el puerto de entrada frecuencia de la estructura al puerto frecuencia de Synth_FREQUENCY. Pero..., ¿qué hacemos con pos?</para +> <para +>No existe esto, porque no hay algoritmo en el mundo que le permita predecir cuando el usuario va a soltar la nota que acaba de pulsar en el teclado midi. Por lo que es mejor tener un parámetro 'pulsado' en su lugar que indique si el usuario aún mantiene la tecla pulsada. (pulsado = 1: la tecla aún está pulsada, pulsado = 0: tecla suelta). </para> + +<para +>Ésto significa que el objeto Synth_PSCALE también debe ser sustituído. Introduzca un Synth_ENVELOPE_ADSR en su lugar (desde <menuchoice +><guimenu +>Módulos</guimenu +><guisubmenu +>Síntesis</guisubmenu +> <guisubmenu +>Envoltorios</guisubmenu +></menuchoice +>). Conecte: </para> + +<orderedlist> +<listitem> +<para +>La estructura de entrada 'pulsada' al 'activo' del ADSR.</para> +</listitem> +<listitem> +<para +>El valor de salida de SIN al valor de entrada de ADSR.</para> +</listitem> +<listitem> +<para +>El valor de salida de ADSR a la salida izquierda de la estructura.</para> +</listitem +><listitem> +<para +>El valor de salida de ADSR a la salida derecha de la estructura.</para> +</listitem> +</orderedlist> + +<para +>Establezca los parámetros ataque a 0.1; desintegrar a 0.2, mantener a 0.7, liberar a 0.1. </para> + +<para +>Otra cosa en la que deberá pensar es que la estructura instrumental debería saber de alguna forma cuándo está preparada para reproducir y limpiar, ya que de otra forma podría no parar nunca aunque se haya liberado la nota. Afortunadamente, el envoltorio ADSR sabe cuándo se debe parar, escalando la señal a cero un momento después de que se haya liberado la nota. </para> + +<para +>Esto se indica asignando 1 a la salida. Por tanto, conecte ésto a la salida de la estructura. La estructura se eliminará tan pronto como suba a 1. </para> + +<para +>Renombre su estructura como tutorial_de_instrumentos (desde <menuchoice +><guimenu +> Archivo</guimenu +><guimenuitem +>Renombrar estructura</guimenuitem +></menuchoice +>) Entonces, guárdela usando guardar como (el nombre predeterminado debería ser ahora tutorial_de_instrumentos).</para +><para +>Inicie artscontrol y vaya a <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Administrador midi</guimenuitem +></menuchoice +>, y escoja <menuchoice +><guimenu +>Añadir</guimenu +><guimenuitem +>Salida midi de síntesis de aRTs</guimenuitem +></menuchoice +>. Finalmente, debería ser capaz de seleccionar su instrumento (tutorial) aquí. </para> + +<para +>Abra una terminal y teclee <userinput +><command +>midisend</command +></userinput +> . Verá cómo <command +>midisend</command +> y el instrumento se escuchan ahora en el administrador &MIDI; de &arts;. Después de seleccionar ambos y pulsar <guibutton +>conectar</guibutton +>, habremos terminado. Tome su teclado y empiece a reproducir (por supuesto debe estar conectado a su ordenador). </para> +</sect2> + +<sect2 id="suggestions"> +<title +>Sugerencias</title> + +<para +>Ahora tendría que ser capaz de trabajar con &arts;. Aquí hay unos pocos consejos que intentarán mejorar sus estructuras: </para> + +<itemizedlist> +<listitem> +<para +>Intente usar otros elementos diferentes de una onda SIN. Cuando introduce una onda TRI, podrá pensar que el sonido no es demasiado bueno. Pero intente enlazar un filtro SHELVE_CUTOFF después de la onda TRI para cortar las frecuencias superiores a una dada (intente algo como 1.000 Hz, o mejor, dos veces la frecuencia de entrada, o la frecuencia de entrada+200Hz o algo así). </para> +</listitem> +<listitem> +<para +>Intente usar más de un oscilador. Synth_XFADE puede usarse para cruzar (mezclar) dos señales y Synth_ADD para añadirlas. </para> +</listitem> +<listitem> +<para +>Intente establecer las frecuencias de los osciladores a valores ligeramente distintos, ya que ésto produce mejores oscilaciones. </para> +</listitem> +<listitem> +<para +>Experimente con mas de un envoltorio. </para> +</listitem> +<listitem> +<para +>Intente sintetizar instrumentos con salidas izquierda y derecha diferentes. </para> +</listitem> +<listitem> +<para +>Intente posprocesar la señal después de que salga del bus el enlace descendente. Puede, por ejemplo, mezclar una versión retrasada de la señal con la original para obtener un efecto de eco. </para> +</listitem> +<listitem> +<para +>Intente utilizar la configuración de la velocidad (es la fuerza con la que se pulsará la nota, podríamos decir que es el volumen). El efecto especial se produce siempre que no sólo se modifique el volumen de la señal resultante, sino también el sonido del instrumento (por ejemplo, el corte de frecuencia). </para> +</listitem> +<listitem> +<para +>...</para> +</listitem> +</itemizedlist> + +<para +>Si ha creado algo realmente bueno, por favor, considere la opción de enviarlo a la página web de &arts;. O para inclusiones en la siguiente versión. </para> +</sect2> + +</sect1> + +<sect1 id="artsbuilder-examples"> +<title +>Ejemplos</title> + +<para +>&arts-builder; viene con bastantes ejemplos, que pueden ser abiertos a través de <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Abrir Ejemplo...</guimenuitem +></menuchoice +> Algunos de ellos están en la carpeta, y otros (que por alguna razón no funcionan en la versión actual) están abandonados en la carpeta todo. </para> +<para +>Los ejemplos están divididos en varias categorías: </para> + +<itemizedlist> +<listitem> +<para +>Ejemplos autónomos ilustrando cómo usar cada uno de los los módulos built-in de arts (llamados <filename +>example_*.arts</filename +>). Éstos envían normalmente alguna salida a la tarjeta de sonido. </para> +</listitem> + +<listitem> +<para +>Instrumentos creados desde módulos de arts de niveles más bajos (llamados <filename +>instrument_*.arts</filename +>). Éstos siguen una convención estándar para los puertos de entrada y salida, por lo que pueden ser usados por el administrador &MIDI; en &artscontrol;. </para> +</listitem> + +<listitem> +<para +>Plantillas para crear nuevos módulos (llamados <filename +>template_*.arts</filename +>). </para> +</listitem> + +<listitem> +<para +>Efectos que pueden usarse como bloques reutilizables (llamados <filename +>effect_*.arts</filename +>) [incluídos en «todo»] </para> +</listitem> + +<listitem> +<para +>Elementos mezcladores para crear mezcladores, incluyendo controles gráficos (llamados <filename +>mixer_element_*.arts</filename +>). [incluídos en «todo»] </para> +</listitem> + +<listitem> +<para +>Varios módulos que no se ajustan a ninguna de las categorías anteriores. </para> +</listitem> +</itemizedlist> + +<variablelist> +<title +>Descripción detallada de cada módulo:</title> +<varlistentry> +<term +><filename +>example_stereo_beep.arts</filename +></term> +<listitem> +<para +>Genera un tono de onda sinusoidal a 440Hz en el canal izquierdo y un tono de onda sinusoidal a 880Hz en el canal derecho y lo envía a la salida de la tarjeta de sonido. Se referencia en la documentación de &arts;. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_sine.arts</filename +></term> +<listitem> +<para +>Genera una onda sinusoidal a 440Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_pulse.arts</filename +></term> +<listitem> +<para +>Genera una onda pulso de 440 Hz con una función cíclica del 20%. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_softsaw.arts</filename +></term> +<listitem> +<para +>Genera una onda de diente de sierra a 440 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_square.arts</filename +></term> +<listitem> +<para +>Genera una onda cuadrada a 440 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_tri.arts</filename +></term> +<listitem> +<para +>Genera una onda triangular a 440 Hz </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_noise.arts</filename +></term> +<listitem> +<para +>Genera ruido blanco. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_dtmf1.arts</filename +></term> +<listitem> +<para +>Genera un tono dual al producir ondas sinusoidales a 697 y 1.209 Hz, escalándolas por 0.5 y añadiéndolas juntas. Éste es el tono DMTF para el dígito «1» en un teclado de teléfono. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_atan_saturate.arts</filename +></term> +<listitem> +<para +>Ejecuta una onda triangular a través del filtro se saturación arcotangente. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_autopanner.arts</filename +></term> +<listitem> +<para +>Utiliza un desplazamiento automático para moldear una onda sinusoidal de 400 Hz desplazándola entre los altavoces izquierdo y derecho a una tasa de 2 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_brickwall.arts</filename +></term> +<listitem> +<para +>Escala una onda sinusoidal por un factor 5 y la pasa a través de un limitador de pendiente alta. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_bus.arts</filename +></term> +<listitem> +<para +>Enlaces descendentes a un bus llamado «Bus» y enlaces ascendentes al bus «salida_tarjeta_sonido» con los canales izquierdo y derecho reservados. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_cdelay.arts</filename +></term> +<listitem> +<para +>Enlaces descendentes a un bus llamado «Retraso», enlaces ascendentes al canal derecho con un retardo de 0,5 segundos, y el canal derecho sin cambios. Puede utilizar &artscontrol; para conectar el efecto a un reproductor de sonido y observar el resultado. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_delay.arts</filename +></term> +<listitem> +<para +>Es lo mismo que <filename +>example_cdelay.arts</filename +> pero usando el efecto retardo. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_capture_wav.arts</filename +></term> +<listitem> +<para +>Ésto usa Synth_CAPTURE_WAV para guardar una onda sinusoidal a 400Hz en un archivo wav. Ejecute el módulo durante unos segundos y luego examine el archivo creado en <filename class="directory" +>/tmp</filename +>. Puede reproducir el archivo con un reproductor como <application +>kaiman</application +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_data.arts</filename +></term> +<listitem> +<para +>Usa el módulo Data para generar un flujo constante de valor «3» y lo envía a un módulo de depuración para mostrarlo periódicamente. También contiene un módulo Nil, ilustrando cómo puede usarse para no hacer nada. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_adsr.arts</filename +></term> +<listitem> +<para +>Muestra como crear un único instrumento de sonido usando el módulo Envoltorio Adsr, iniciado repetidamente por una onda cuadrada. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_fm.arts</filename +></term> +<listitem> +<para +>Usa el módulo FM Source para generar una onda sinusoidal a 440 Hz que es una frecuencia modulada a un ratio de 5 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_freeverb.arts</filename +></term> +<listitem> +<para +>Conecta el efecto freeverb desde un bus de enlace descendente a un bus enlace de salida. Puede usar artscontrol para conectar el efecto a un reproductor de sonido y observar el resultado. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_flanger.arts</filename +></term> +<listitem> +<para +>Implementa un único efecto metálico (aunque parece que no funciona todavía). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_moog.arts</filename +></term> +<listitem> +<para +>Esta estructura combina los dos canales de un bus en otro, lo pasa a través del filtro Moog VCF, y lo envía fuera a través del bus salida_tarjeta_sonido. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_pitch_shift.arts</filename +></term> +<listitem> +<para +>La estructura pasa el canal izquierdo de los datos de la tarjeta de sonido a través del efecto modificador del tono. Ajuste el parámetro velocidad para variar el efecto. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_rc.arts</filename +></term> +<listitem> +<para +>La estructura pasa un generador de ruido blanco a través de un filtro RC y la da salida a través de la tarjeta de sonido. Observando la pantalla FFT scope en artscontrol puede ver cómo cambia respecto a una onda de ruido sin filtro. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_sequence.arts</filename +></term> +<listitem> +<para +>Muestra el módulo Secuencia reproduciendo una secuencia de notas. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_shelve_cutoff.arts</filename +></term> +<listitem> +<para +>Esta estructura pasa un ruido blanco a través del filtro de descenso de corte y lo da salida a través de la tarjeta de sonido. Observando la pantalla FFT scope en artscontrol puede ver cómo cambia respecto a una onda de ruido sin filtro. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_equalizer.arts</filename +></term> +<listitem> +<para +>Muestra el módulo Std_Equalizer. Aumenta las frecuencias altas y bajas en 6 dB. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_tremolo.arts</filename +></term> +<listitem> +<para +>Muestra el efecto Trémolo. Modula los canales izquierdo y derecho usando un trémolo a 10Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_xfade.arts</filename +></term> +<listitem> +<para +>Este ejemplo mezcla ondas sinusoidales de 440 y 880 Hz usando un fundido cruzado. Ajuste el valor del porcentaje de entrada del fundido cruzado desde -1 a 1 para controlar la mezcla de las dos señales. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_pscale.arts</filename +></term> +<listitem> +<para +>Ilustra el módulo Pscale (no estoy seguro si éste es un ejemplo significativo). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_play_wav.arts</filename +></term> +<listitem> +<para +>Ilustra el módulo reproducción de onda. Necesitará introducir la ruta completa a un archivo <literal role="extension" +>.wav</literal +> en el parámetro de nombre de archivo. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>example_multi_add.arts</term> +<listitem> +<para +>Muestra el módulo de añadido múltiple, que acepta cualquier número de entradas. Suma tres módulos de datos que producen de entrada 1, 2 y 3, y muestra el resultado 6. </para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> +</chapter> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/detail.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/detail.docbook new file mode 100644 index 00000000000..a2c121be936 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/detail.docbook @@ -0,0 +1,1337 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<chapter id="arts-in-detail"> +<title +>&arts; en detalle</title> + +<sect1 id="architecture"> +<title +>Arquitectura</title> + +<mediaobject> +<imageobject> +<imagedata fileref="arts-structure.png" format="PNG"/> +</imageobject> +<textobject +><phrase +>La estructura de &arts;.</phrase +></textobject> +</mediaobject> +</sect1> + +<sect1 id="modules-ports"> +<title +>Módulos y puertos</title> + +<para +>La idea de &arts; es que la síntesis se puede hacer a través del uso de pequeños módulos, que sólo hacen una cosa y que, se pueden combinar en estructuras complejas. Los pequeños módulos normalmente tiene entradas, por donde pueden recibir señales o parámetros, y salidas, por donde producen señales. </para> + +<para +>Un módulo (Synth_ADD), por ejemplo, puede coger dos señales en la entrada y juntarlas. El resultado es la señal de salida. Los lugares por los que los módulos envían y reciben señales se denominan puertos. </para> + +</sect1> + +<sect1 id="structures"> +<title +>Estructuras</title> + +<para +>Una estructura es una combinación de módulos conectados, algunos de los cuales pueden tener parámetros codificados directamente en sus puertos de entrada, otros pueden estrar conectados, y otros puede que no estén conectados en absoluto. </para> + +<para +>Lo que se puede hacer con &arts-builder; es describir estructuras. Usted describe qué módulos desea que estén conectados con otros módulos. Cuando haya terminado, puede guardar la descripción de la estructura en un archivo, o decirle a &arts; que genere la estructura que usted ha descrito (Ejecutar). </para> + +<para +>Lo más probable es que se oiga un sonido, si todo está hecho correctamente. </para> +</sect1> + +<!-- TODO + +<sect1 id="streams"> +<title +>Streams</title> + +</sect1> + +--> + +<sect1 id="latency"> +<title +>Latencia</title> + +<sect2 id="what-islatency"> +<title +>¿Qué es la latencia?</title> + +<para +>Suponga que tiene una aplicación llamada «ratónpling» (que hace que suene un «pling» cada vez que pulse un botón del ratón). La latencia es el tiempo que transcurre desde que su dedo pulsa el botón del ratón hasta que escucha el sonido. La latencia en este caso se compone a sí misma a partir de otras latencias, que pueden tener diferentes causas. </para> + +</sect2> + +<sect2 id="latenbcy-simple"> +<title +>Latencia en aplicaciones sencillas</title> + +<para +>En esta sencilla aplicacióm, la latencia se produce en estos lugares: </para> + +<itemizedlist> + +<listitem> +<para +>El tiempo transcurrido desde que el núcleo ha comunicado al servidor X11 que se ha pulsado un botón del ratón. </para> +</listitem> + +<listitem> +<para +>El tiempo desde que el servidor X11 notifica a su aplicación que se ha pulsado un botón del ratón. </para> +</listitem> + +<listitem> +<para +>El tiempo desde que la aplicación ratónpling decide que ese botón se merece un pling. </para> +</listitem> + +<listitem> +<para +>El tiempo que tarda la aplicación ratónpling en decirle al servidor de sonido que debe reproducir un pling. </para> +</listitem> + +<listitem> +<para +>El tiempo que tarda el pling (que el servidor de sonido mezcla con otras salidas al mismo tiempo) en pasar por la memoria de intercambio de datos, hasta que llega a la posición en la que la tarjeta de sonido lo reproduce. </para> +</listitem> + +<listitem> +<para +>El tiempo que tarda el pling en llegar desde los altavoces hasta sus oidos. </para> +</listitem> +</itemizedlist> + +<para +>Los tres primeros puntos son latencias externas a &arts;. Son interesantes, pero fuera del objetivo de este documento. En cualquier caso, tenga en cuenta que existen, así que aunque haya optimizado todo lo demás, puede que no siempre obtenga exactamente el resultado calculado. </para> + +<para +>Decirle al servidor que reproduzca algo normalmente implica una simple llamada a &MCOP;. Existe un punto de referencia que confirma esto, en el propio servidor con conexiones al dominio unix, diciéndole al servidor que reproduzca algo alrededor de 9.000 veces por segundo con la implementación actual. Espero que la mayor parte de esto sea utilizado por el núcleo del sistema, cambiando de una aplicación a otra. Por supuesto, este valor cambia con el tipo exacto de parámetros. Si transfiere una imagen completa con una llamada, se volverá tan lento como si sólo transfiriera un valor. El código devuelto por el mismo es true. Sin embargo, para las cadenas habituales (como el nombre de un archivo <literal role="extension" +>wav</literal +> que se vaya a reproducir) no debería haber problema. </para> + +<para +>Ésto significa que podemos aproximarnos a ese momento en 1/9.000 segundos, eso es inferior a 0,15 milisegundos. Como veremos esto no es relevante. </para> + +<para +>Lo siguiente es el tiempo entre que el servidor comienza a reproducir y la tarjeta de sonido hace algo. El servidor necesita llenar la memoria de intercambio, por ello cuando otras aplicaciones se ejecutan, como su servidor X11 o la aplicación «ratónpling» se perderá información que no se oirá. La forma en que se hace ésto bajo &Linux; es a través de una serie de fragmentos de un tamaño. El servidor recargará los fragmentos y la tarjeta de sonido los reproducirá. </para> + +<para +>Así que supongamos que hay tres fragmentos. El servidor rellena el primero, la tarjeta de sonido comienza a reproducir. El servidor rellena el segundo. El servidor rellena el tercero. El servidor ha terminado, la otras aplicaciones ya pueden volver a hacer cosas. </para> + +<para +>Una vez que la tarjeta de sonido ha terminado con el primer fragmento, comienza a reproducir el segundo y el servidor comienza a rellenar el primero. Y así contínuamente. </para> + +<para +>La latencia máxima que se puede tener con todo esto es (número de fragmentos)*(tamaño de cada fragmento)/(ratio de muestreo * (tamaño de cada muestra)). Suponga que tomamos sonido estéreo de 44kHz, y 7 fragmentos de 1.024 bytes (el tamaño predeterminado de aRts), tendremos 40 milisegundos. </para> + +<para +>Estos valores pueden ser ajustados de acuerdo a sus necesidades. Sin embargo, el uso de <acronym +>CPU</acronym +> aumenta con menores latencias, ya que el servidor de sonido necesita rellenar la memoria intermedia más a menudo y en partes más pequeñas. Es también casi imposible alcanzar buenos valores si no se le da al servidor de sonido prioridad en tiempo real, ya que de otra manera obtendrá separaciones. </para> + +<para +>Sin embargo, es realista hacer algo similar con 3 fragmentos de 256 bytes cada uno, que podrían hacer este valor 4,4 ms. Con 4,4 ms de retardo de la inactividad de utilización de la <acronym +>CPU</acronym +> por parte de &arts; será de alrededor del 7,5%. Con 40 ms de retardo, sería de alrededor del 3% (en un PII-350, y este valor puede depender de su tarjeta de sonido, versión del núcleo, etc.). </para> + +<para +>Después está el tiempo que tarda el sonido pling en llegar desde los altavoces hasta sus oidos. Suponga que la distancia con los altavoces es de 2 metros. El sonido viaja a una velocidad de 330 metros por segundo. Así que serán aproximadamente 6 milisegundos. </para> + +</sect2> + +<sect2 id="latency-streaming"> +<title +>La latencia en las aplicaciones de transmisión</title> + +<para +>Las aplicaciones de transmisión son aquellas que producen sonido por sí mismas. Piense en un juego, que da salida a una transmisión constante de muestras, y que debe ser adaptado para funcionar por medio de &arts;. Por ejemplo: al pulsar una tecla, la figura de la pantalla salta, y se reproduce un sonido tipo boing. </para> + +<para +>En primer lugar, necesita saber cómo realiza &arts; la transmisión. Es muy similar a la E/S de la tarjeta de sonido. El juego envía algunos paquetes con secuencias al servidor de sonido. Digamos tres paquetes. Tan pronto como el servidor de sonido termina con el primero, envía una confirmación al juego conforme el paquete está realizado. </para> + +<para +>El juego genera otro paquete de sonido y lo envía al servidor. Mientras tanto el servidor comienza a consumir el segundo paquete de sonido, y así contínuamente. En este caso la latencia es similar a la del caso sencillo: </para> + +<itemizedlist> +<listitem> +<para +>El tiempo hasta que el núcleo informa al servidor X11 de que se ha pulsado una tecla. </para> +</listitem> + +<listitem> +<para +>El tiempo hasta que el servidor X11 notifica al juego que se ha pulsado una tecla. </para> +</listitem> + +<listitem> +<para +>El tiempo hasta que el juego decide que esa tecla se merece un boing. </para> +</listitem> + +<listitem> +<para +>El tiempo hasta que el paquete de sonido en el que el juego pone el sonido boing llega hasta el servidor de sonido. </para> +</listitem> + +<listitem> +<para +>El tiempo que tarda el boing (que el servidor de sonido inicia mezclado simultáneamente con otra salida) en ir desde la memoria intermedia de datos, hasta que alcanza la posición en la que se reproducirá por la tarjeta de sonido. </para> +</listitem> + +<listitem> +<para +>El tiempo que tarda el sonido boing en llegar desde los altavoces hasta sus oidos. </para> +</listitem> + +</itemizedlist> + +<para +>Las latencias externas, como en el caso anterior, no son el objeto de este documento. </para> + +<para +>Obviamente, la latencia de la transmisión depende del tiempo en que todos los paquetes usados para el flujo tardan en reproducirse una vez. Ésto es (número de paquetes)*(tamaño de cada paquete)/(ratio de muestreo * (tamaño de cada secuencia)). </para> + +<para +>Como puede ver es la misma fórmula que se aplica a los fragmentos. Sin embargo, para los juegos, no da la sensión de que ni siquiera haya un pequeño retardo. Una configuración realista para juegos podría ser 2.048 bytes por paquete, utilizando 3 paquetes. La latencia resultante será de 35 ms. </para> + +<para +>Se basa en lo siguiente: se asume que el juego renderiza 25 imágenes por segundo (para la pantalla). Es probable que asuma que no desee diferencias entre la salida de sonido y una imagen. Por lo que un retraso de 1/25 para el flujo es aceptable, que al cambio son unos 40 ms. </para> + +<para +>La mayor parte de la gente tampoco ejecutará sus juegos con prioridad en tiempo real, y el peligro de saltos en el sonido no debe ser descuidado. Un flujo con 3 paquetes de 256 bytes es posible (yo lo intenté) - pero causa un gran uso de <acronym +>CPU</acronym +> para la transmisión. </para> + +<para +>En las latencias del lado del servidor, éstas se puede calcular exactamente igual que en el caso anterior. </para> + +</sect2> + +<sect2 id="cpu-usage"> +<title +>Algunas consideraciones sobre el uso de la <acronym +>CPU</acronym +></title> + +<para +>Existen muchos factores que influyen en el uso de la <acronym +>CPU</acronym +> en un escenario complejo con aplicaciones de flujo y de otros tipos, extensiones en el servidor etc. Por nombrar alguno: </para> + +<itemizedlist> +<listitem> +<para +>Uso de la <acronym +>CPU</acronym +> sin procesar para efectuar los cálculos necesarios. </para> +</listitem> + +<listitem> +<para +>Planificación interna del uso del sistema de &arts; - Cómo decide &arts; con qué módulo cargar qué. </para> +</listitem> + +<listitem> +<para +>Uso del sistema en la conversión de entero a flotante. </para> +</listitem> + +<listitem> +<para +>Uso del sistema en el protocolo &MCOP;0. </para> +</listitem> + +<listitem> +<para +>Núcleo: cambiar proceso/contexto. </para> +</listitem> + +<listitem> +<para +>Núcleo: uso del sistema de comunicación. </para> +</listitem> +</itemizedlist> + +<para +>Si reproduce dos transferencias, necesitará hacer añadidos a los cálculos de uso de la <acronym +>CPU</acronym +>. Si aplica un filtro, éste puede implicar algunos cálculos. Veamos un ejemplo simplificado, añadir dos transferencias implica quizá cuatro ciclos de <acronym +>CPU</acronym +> adicionales, lo que en un procesador de 350Mhz, sería un 44.100*2*4/350.000.000 = 0,1% de uso de la <acronym +>CPU</acronym +>. </para> + +<para +>Planificación interna de &arts;: &arts; necesita decidir qué extensión debe calcular qué y cuándo. Esto lleva tiempo. Haga un análisis si está interesado en ésto. Generalmente se puede decir: menor tiempo real utiliza (&ie;, grandes bloques que se pueden calcular a la vez) menor uso del sistema para planificación. Para calcular bloques de 128 muestras a la vez (utilizando tamaños de fragmento de 512 bytes) la utilización del uso del sistema para planificación no consume mucho. </para> + +<para +>Uso del sistema en la conversión de entero a flotante: &arts; utiliza internamente como formato de datos los números de coma flotante. Son sencillos de manejar y en los procesadores recientes no son tan lentos como las operaciones con enteros. Sin embargo, si existen clientes que reproducen datos que no están en coma flotante (como un juego que deba reproducir una salida de sonido a través de &arts;), necesitará conversión. Lo mismo se aplica si desea reproducir sonidos en su tarjeta de sonido. Las tarjetas de sonido trabajan con enteros, por tanto, necesitará convertirlos. </para> + +<para +>Veamos los números para un Celeron, aprox. ticks por muestra, con -O2 +egcs 2.91.66 (tomado por Eugene Smith <email +>[email protected]</email +>). Por supuesto esto depende en gran medida del procesador: </para> + +<programlisting +>convert_mono_8_float: 14 +convert_stereo_i8_2float: 28 +convert_mono_16le_float: 40 +interpolate_mono_16le_float: 200 +convert_stereo_i16le_2float: 80 +convert_mono_float_16le: 80 +</programlisting> + +<para +>Lo que significa 1% de uso de <acronym +>CPU</acronym +> para la conversión y 5% para la interpolación en este procesador a 350 MHz. </para> + +<para +>Uso del sistema por el protocolo &MCOP;: &MCOP; hace, por lo general, 9.000 llamadas por segundo. La mayor parte de las cuales no son debidos a &MCOP;, estando relacionadas con las dos situaciones que se describen a continuación. Sin embargo, esto nos proporciona una base para calcular el coste de la transferencia. </para> + +<para +>Cada paquete de datos transferidos se puede considerar una llamada &MCOP;. Por supuesto, los paquetes grandes serán más lentos que 9.000 paquetes, pero ésta es la idea. </para> + +<para +>Supongamos que usa paquetes de 1.024 bytes. Así que, para transferir un flujo a 44kHz estéreo, necesitará transferir 44.100*4/1.024 = 172 paquetes por segundo. Supongamos que pueda con un uso del 100% de cpu transferir 9.000 paquetes, entonces obtendrá un (172*100)/9.000 = 2% de uso de <acronym +>CPU</acronym +> para hacer un flujo con paquetes de 1.024 bytes. </para> + +<para +>Ésto es una aproximación. Sin embargo, muestra que debería mejorar (si puede proporcionarlo para la latencia), para utilizar, por ejemplo, paquetes de 4.096 bytes. Podemos escribir una fórmula compacta, calculando el tamaño del paquete que provocaría la utilización del 100% de la <acronym +>CPU</acronym +> como 44.100*4/9.000 = 19,6 muestras, consiguiendo así la siguiente fórmula: </para> + +<para +>Uso de la <acronym +>CPU</acronym +> por la transferencia en porcentaje = 1.960/(tamaño de paquete). </para> + +<para +>Esto nos da un 0,5% de uso de <acronym +>CPU</acronym +> cuando se hace una transmisión con paquetes de 4.096 bytes. </para> + +<para +>Cambio del proceso del núcleo/contexto: forma parte del uso del sistema por parte del protocolo &MCOP;. El cambio entre dos procesos lleva su tiempo. Existe un nuevo mapeado de memoria, la caché ya no es válida (si hay un experto en núcleos leyendo ésto - déjeme indicarle cuáles son las causas). Esto significa: lleva tiempo. </para> + +<para +>No estoy seguro de cuantos cambios de contexto puede hacer &Linux; por segundo, pero no es un número infinito. Por ello, supongo que una parte del uso del sistema por parte del protocolo &MCOP; se debe al cambio de contexto. En los comienzos de &MCOP;, comprobé el uso de la misma comunicación dentro de un proceso, e iba mucho más rápido (cuatro veces más rápido o más). </para> + +<para +>Núcleo: uso del sistema de comunicación: Forma parte del uso del sistema por parte del protocolo &MCOP;. Transferir datos entre procesos se suele hacer a través de conexiones. Esto es conveniente, pues los métodos select() se pueden utilizar para determinar cuando ha llegado un mensaje. También se puede combinar fácilmente con otras fuentes de E/S como E/S de audio, servidor X11 o cualquier otra. </para> + +<para +>Sin embargo, estas llamadas de lectura y escritura cuestan ciertos ciclos de procesador. Para pequeñas llamadas (como transferir un evento midi) esto no será probablemente un problema, pero para grandes llamadas (como transferir una imagen de vídeo de muchos megabytes) puede ser claramente un problema. </para> + +<para +>Añadir el uso de memoria compartida a &MCOP; donde se necesite es probablemente la mejor solución. Sin embargo, debe hacerse transparente para el programador de la aplicación. </para> + +<para +>Tome un analizador o haga pruebas para averiguar como influyen las transferencias de audio en la memoria compartida no utilizada. Sin embargo, no todo es malo, ya que la transferencia de audio (reproducción de mp3) se puede hacer con un uso de <acronym +>CPU</acronym +> del 6% por parte de &artsd; y <application +>artscat</application +> (y 5% para el decodificador mp3). Sin embargo, esto incluye todos los cálculos necesarios del uso del sistema de conexión, así se podría decir que quizá sería posible ahorrar hasta un 1% del uso de la memoria compartida. </para> + +</sect2> + +<sect2 id="hard-numbers"> +<title +>Hagamos números</title> + +<para +>Están hechos con la versión actual en desarrollo. Deseaba probar casos reales extremos, que no son los que las aplicaciones deberían utilizar en el día a día. </para> + +<para +>Escribí una aplicación llamada streamsound que envía transferencias de datos a &arts;. Aquí la vemos ejecutándose con prioridad de tiempo real (sin problemas), y una pequeña extensión de servidor (escalado de volumen y recorte): </para> + +<programlisting +>4974 stefan 20 0 2360 2360 1784 S 0 17.7 1.8 0:21 artsd +5016 stefan 20 0 2208 2208 1684 S 0 7.2 1.7 0:02 streamsound +5002 stefan 20 0 2208 2208 1684 S 0 6.8 1.7 0:07 streamsound +4997 stefan 20 0 2208 2208 1684 S 0 6.6 1.7 0:07 streamsound +</programlisting> + +<para +>Cada una de ellas es una transferencia con 3 fragmentos de 1.024 bytes (18 ms). Hay tres clientes ejecutándose simultáneamente. Se que ésto parece un poco excesivo, pero me dije: toma un analizador y busca el coste de tiempo, y si quiere, mejórelo. </para> + +<para +>Sin embargo, no pensé en utilizar la transferencia de forma realista o que tuviera sentido. Para llevarlo aún más al extremo, intenté averiguar cual sería el estado latente más bajo posible. Resultado: puede hacer transferencia sin interrupciones con una aplicación cliente, si utiliza 2 fragmentos de 128 bytes entre aRts y la tarjeta de sonido, y entre la aplicación cliente y aRts. Esto significa que obtendrá una latencia total máxima de 128*4/44.100*4 = 3 ms, de los que 1,5 ms se deben a la E/S de la tarjeta de sonido y los 1,5 ms restantes están motivados por la comunicación con &arts;. Ambas aplicaciones necesitan tiempo real de ejecución. </para> + +<para +>Pero esto consume una enorme cantidad de <acronym +>CPU</acronym +>. Este ejemplo consume alrededor del 45% de mi P-II/350. A esto hay que sumarle el movimiento de las ventanas en su X11 o los accesos de E/S al disco. Todas estas son funciones del núcleo. El problema es que programar dos o más aplicaciones con prioridad de tiempo real consume cantidades enormes, y más todavía si se producen comunicaciones, notificaciones entre ellas, &etc;. </para> + +<para +>Finalmente, un ejemplo más cercano a la vida real. Es &arts; con artsd y un artscat (un cliente de transmisiones) ejecutando 16 fragmentos de 4.096 bytes. </para> + +<programlisting +>5548 stefan 12 0 2364 2364 1752 R 0 4.9 1.8 0:03 artsd +5554 stefan 3 0 752 752 572 R 0 0.7 0.5 0:00 top +5550 stefan 2 0 2280 2280 1696 S 0 0.5 1.7 0:00 artscat +</programlisting> + +</sect2> +</sect1> + +<!-- TODO + +<sect1 id="dynamic-instantiation"> +<title +>Dynamic Instantiation</title> + +</sect1> + +--> + +<sect1 id="busses"> +<title +>Buses</title> + +<para +>Los buses son conexiones construídas dinámicamente que transfieren sonido. Básicamente, existen unos enlaces ascendentes y otros descendentes. Todas las señales de los enlaces ascendentes se añaden y envían a los enlaces descendentes. </para> + +<para +>Los buses están actualmente implementados para operar en estéreo, por tanto, solo podrá transferir datos en estéreo a través de los buses. Si desea utilizar datos en mono, bueno, tranfiéralos sobre un canal y deje el otro a cero. Todo lo que necesita hacer es crear uno o más objetos Synth_BUS_UPLINK y decirles el nombre del bus, en el que deberían hablar (⪚ «audio» o «batería»). </para> + +<para +>Entonces, necesitará crear uno o más objetos Synth_BUS_DOWNLINK, e indicar el nombre del bus («audio» o «batería» ... si coinciden los datos pasarán), y los datos combinados saldrán otra vez. </para> + +<para +>Los enlaces ascendentes y descendentes pueden estar en diferentes estructuras, puede incluso tener diferentes &arts-builder;s ejecutándose, e iniciar un enlace ascendente en uno y recibir los datos desde el otro con un enlace descendente. </para> + +<para +>Lo bueno de los buses es que son totalmente dinámicos. Los clientes pueden conectarse y desconectarse al vuelo. No debería haber ruidos o chasquidos mientras esto sucede. </para> + +<para +>Por supuesto, no debe desconectar un cliente mientras se reproduce un señal, ya que probablemente no tendrá un nivel cero cuando se desconecte el bus, y entonces chasqueará. </para> +</sect1> + +<!-- TODO +<sect1 id="network-ransparency"> +<title +>Network Transparency</title> + +</sect1> + +<sect1 id="security"> +<title +>Security</title> + +</sect1> + + +<sect1 id="effects"> +<title +>Effects and Effect Stacks</title> + +</sect1> + +--> +<sect1 id="trader"> +<title +>Negociación</title> + +<para +>&arts;/&MCOP; está fuertemente dividido en pequeños componentes. Ésto hace las cosas muy flexibles, de forma que pueda extender el sistema fácilmente añadiendo nuevos componentes, que implementen nuevos efectos, formatos de archivo, osciladores, elementos de gui, ... Como casi todo es un componente, casi todo puede ser extendido fácilmente, sin cambiar las fuentes existentes. Los nuevos componentes puede cargarse dinámicamente de forma simple para mejorar aplicaciones ya existentes. </para> + +<para +>Sin embargo, para realizar este trabajo, se requieren dos cosas: </para> + +<itemizedlist> + +<listitem> +<para +>Los componentes deben anunciarse a sí mismos - deben describir qué es lo que ofrecen, para que las aplicaciones sean capaces de usarlos. </para> +</listitem> + +<listitem> +<para +>Las aplicaciones deben buscar activamente componentes que pueden usar, en lugar de usar siempre lo mismo para la misma tarea. </para> +</listitem> + +</itemizedlist> + +<para +>La combinación de ésto: componentes que dicen «aquí estoy, soy genial, úsame» , y aplicaciones (o si prefiere, otros componentes) que salen y buscan qué componentes pueden usar para llevar a cabo una tarea, se llama negociación. </para> + +<para +>En &arts;, los componentes se describen a sí mismos especificando valores que pueden «soportar» para distintas propiedades. Una propiedad típica para un componente cargador de archivos puede ser la extensión de los archivos que puede procesar. Los valores típicos pueden ser <literal role="extension" +>wav</literal +>, <literal role="extension" +>aiff</literal +> o <literal role="extension" +>mp3</literal +>. </para> + +<para +>De hecho, todos los componentes pueden ofrecer muchos valores diferentes para una propiedad. Por lo que un simple componente puede ofrecer leer tanto archivos, <literal role="extension" +>wav</literal +> como <literal role="extension" +>aiff</literal +>, especificando que soportan estos valores para la propiedad «Extensión». </para> + +<para +>Para hacer esto, cada componente tiene que colocar un archivo <literal role="extension" +>.mcopclass</literal +> en el sitio correcto, que contenga las propiedades que soporta. En nuestro ejemplo, podría parecerse a esto (y estaría instalado en <filename +><replaceable +>componentdir</replaceable +> /Arts/WavPlayObject.mcopclass</filename +>): </para> + +<programlisting +>Interface=Arts::WavPlayObject,Arts::PlayObject,Arts::SynthModule,Arts::Object +Author="Stefan Westerfeld <[email protected]>" +URL="http://www.arts-project.org" +Extension=wav,aiff +MimeType=audio/x-wav,audio/x-aiff +</programlisting> + +<para +>Es importante que el nombre del archivo <literal role="extension" +>.mcopclass</literal +> indique qué interfaz del componente se llamará. La negociación no busca contenidos, si el archivo (como aquí) se llama <filename +>Arts/WavPlayObject.mcopclass</filename +>, la interfaz del componente se llamará <interfacename +>Arts::WavPlayObject</interfacename +> (mapa de los módulos de las carpetas). </para> + +<para +>Para buscar componentes, existen dos interfaces (que están definidas en <filename +>core.idl</filename +>, de forma que los pueda tener en cada aplicación), llamados <interfacename +>Arts::TraderQuery</interfacename +> y <interfacename +>Arts::TraderOffer</interfacename +>. Usted podrá «ir de compras» de componentes de una forma similar a: </para> + +<orderedlist> +<listitem> +<para +>Cree un objeto solicitud: </para> +<programlisting +>Arts::TraderQuery query; +</programlisting> +</listitem> + +<listitem> +<para +>Especifique lo que desea. Como puede ver arriba, los componentes se describen a sí mismos usando propiedades, para las que ofrecen ciertos valores. Por lo que para precisar lo que desea se seleccionan los componentes que soportan cierto valor para una propiedad. Ésto se hace usando el método de soporte de un TraderQuery: </para> + +<programlisting +>query.supports("Interface","Arts::PlayObject"); + query.supports("Extension","wav"); +</programlisting> +</listitem> + +<listitem> +<para +>Finalmente, realice la petición usando el método de solicitud. Entonces, obtendrá (con esperanza) algunas ofertas: </para> + +<programlisting +>vector<Arts::TraderOffer> *offers = query.query(); +</programlisting> +</listitem> + +<listitem> +<para +>Ahora puede examinar lo que encontró. Es importante el método interfaceName de TraderOffer, que le dice el nombre del componente que cumple la solicitud. Puede también encontrar más propiedades mediante getProperty. El código siguiente simplemente recorrerá todos los componentes, escribirá sus nombres de interfaz (que pueden usarse para la creación), y borrará los resultados de la solicitud otra vez: </para> +<programlisting +>vector<Arts::TraderOffer>::iterator i; + for(i = offers->begin(); i != offers->end(); i++) + cout << i->interfaceName() << endl; + delete offers; +</programlisting> +</listitem> +</orderedlist> + +<para +>Para que este tipo de servicio de negociación sea práctico, es importante que de alguna manera se acuerde el tipo de propiedades que se deberían definir. Es esencial que más o menos todos los componentes en un determinado área utilicen el mismo conjunto de propiedades que los describan (y el mismo conjunto de valores aplicables), de modo que las aplicaciones (u otros componentes) puedan encontrarlos. </para> + +<para +>Author (tipo string, opcional): Puede usarse para dar a conocer al mundo que usted escribió algo. Puede escribir lo que quiera aquí, y por supuesto su dirección de correo electrónico. </para> + +<para +>Buildable (tipo lógico, recomendado): Indica si el componente es utilizable con las herramientas <acronym +>RAD</acronym +> (como &arts-builder;) que utiliza componentes asignándoles propiedades y conectando puertos. Es recomendable fijar este valor a true para casi cualquier proceso de señal del componente (como filtros, efectos, osciladores, ...), y para todo lo demás que pueda ser utilizado en <acronym +>RAD</acronym +>, pero no para los elementos internos, como por ejemplo, <interfacename +>Arts::InterfaceRepo</interfacename +>. </para> + +<para +>Extension (tipo string, usar cuando sea necesario): Todo lo que trate con archivos debe considerar usarlo. Debe poner la forma en minúsculas de la extensión de archivo sin el «.», por lo que algo como <userinput +>wav</userinput +> debe valer. </para> + +<para +>Interface (tipo string, requerido): Debe incluir una lista completa de las interfaces (útiles) que sus componentes soportan, probablemente incluyendo <interfacename +>Arts::Object</interfacename +> y si se puede aplicar <interfacename +>Arts::SynthModule</interfacename +>. </para> + +<para +>Language (tipo string, recomendado). Si desea que su componente se cargue dinámicamente, necesita especificar el lenguaje aquí. Actualmente, el único valor permitido es <userinput +>C++</userinput +>, lo que significa que el componente se escribió usando la <acronym +>API</acronym +> normal de C++. Si hace eso, necesitará también asignar un valor a la propiedad «Library». </para> + +<para +>Library (tipo string, usar cuando sea necesario): Los componentes escritos en C++ pueden cargarse dinámicamente. Para hacerlo, necesita compilarlos en un módulo cargable dinámicamente de bibiloteca de herramientas (<literal role="extension" +>.la</literal +>). Aquí puede especificar el nombre del archivo <literal role ="extension" +>.la</literal +> que contiene su componente. Recuerde usar REGISTER_IMPLEMENTATION (como siempre). </para> + +<para +>MimeType (tipo string, usar cuando sea necesario): Todo aquello que trate con archivos debería utilizarlo. Debe poner en minúsculas la forma del tipo mime estándar, por ejemplo <userinput +>audio/x-wav</userinput +>. </para> + +<para +>&URL; (tipo string, opcional): Si quiere dar a conocer a la gente dónde puede encontrar una nueva versión del componente (o una página o algo así), puede hacerlo aquí. Debe ser una &URL; &HTTP; o &FTP; estándar. </para> + +</sect1> + +<!-- TODO +<sect1 id="midi-synthesis"> +<title +><acronym +>MIDI</acronym +> Synthesis</title> + +</sect1> + +<sect1 id="instruments"> +<title +>Instruments</title> + +</sect1> + +<sect1 id="session-management"> +<title +>Session Management</title> + +</sect1> + +<sect1 id="full-duplex"> +<title +>Full duplex Audio</title> + +</sect1> +--> + +<sect1 id="namespaces"> +<title +>Espacios de nombres en &arts;</title> + +<sect2 id="namespaces-intro"> +<title +>Introducción</title> + +<para +>Cada declaración de un espacio de nombres se corresponde con la declaración de un «módulo» en la &IDL; de &MCOP;. </para> + +<programlisting +>// idl mcop + +module M { + interface A + { + } +}; + +interface B; +</programlisting> + +<para +>En este caso, el código C++ generado por el trozo &IDL; debería ser algo similar a esto: </para> + +<programlisting +>// cabecera C++ + +namespace M { + /* declaración de A_base/A_skel/A_stub y similares */ + class A { // Clase del interfaz de referencia + /* [...] */ + }; +} + +/* declaración de B_base/B_skel/B_stub y similares */ +class B { + /* [...] */ +}; +</programlisting> + +<para +>Por tanto, para referenciar en su código C++ las clases del ejemplo anterior, debería escribir <classname +>M::A</classname +>, pero solo B. Sin embargo, puede, por supuesto, utilizar «using M» en algunos lugares - como con cualquier espacio de nombres en C++. </para> + +</sect2> + +<sect2 id="namespaces-how"> +<title +>Cómo usa &arts; los espacios de nombres</title> + +<para +>Hay un espacio de nombres global llamado «Arts», que todos los programas y librerías que pertenecen a &arts; usan para poner sus declaraciones. Ésto significa, que cuando se escrible código C++ que depende de &arts;, normalmente se deberán prefijar todas las clases que use con <classname +>Arts::</classname +>, como aquí: </para> + +<programlisting +>int main(int argc, char **argv) +{ + Arts::Dispatcher repartidor; + Arts::SimpleSoundServer servidor(Arts::Reference("global:Arts_SimpleSoundServer")); + + servidor.play("/var/foo/archivo.wav"); +</programlisting> + +<para +>La otra alternativa es escribirlo utilizando using, como en: </para> + +<programlisting +>using namespace Arts; + +int main(int argc, char **argv) +{ + Dispatcher repartidor; + SimpleSoundServer servidor(Reference("global:Arts_SimpleSoundServer")); + + server.play("/var/foo/archivo.wav"); + [...] +</programlisting> + +<para +>En los archivos &IDL;, no necesitará hacer una elección concreta. Si está escribiendo código perteneciente al propio &arts;, debería colocarlo en el módulo &arts;. </para> + +<programlisting +>// Archivo IDL para código aRts: +#include <artsflow.idl> +module Arts { // lo pone dentro del espacio de nombres de Arts + interface Synth_TWEAK : SynthModule + { + in audio stream entrada; + out audio stream salida; + attribute float factorAjuste; + }; +}; +</programlisting> + +<para +>Si escribe código que no pertenece a &arts;, no debe ponerlo en el espacio de nombres de «Arts». Sin embargo, puede hacer un espacio de nombres propio si lo desea. En cualquier caso, tendrá que prefijar las clases que use de &arts;. </para> + +<programlisting +>// Archivo IDL para el código que no pertenece a aRts: +#include <artsflow.idl> + +// lo escrito sin declaración de módulo, entonces las clases generadas no utilizarán +// un espacio de nombres: +interface Synth_TWEAK2 : Arts::SynthModule +{ + in audio stream entrada; + out audio stream salida; + attribute float factorAjuste; +}; + +// sin embargo, también puede elegir su propio espacio de nombres, si lo desea, así si +// escribe una aplicación «Radio», podrá, por ejemplo, hacer algo parecido a: +module Radio { + struct Emisora { + string nombre; + float frecuencia; + }; + + interface Sintonizador : Arts::SynthModule { + attribute Emisora emisora; // no necesita el prefijo Emisora por pertenecer al mismo módulo + out audio stream izquierdo, derecho; + }; +}; +</programlisting> + +</sect2> + +<sect2 id="namespaces-implementation"> +<title +>Detalles internos: Cómo funciona la implementación</title> + +<para +>Algunas veces, en los interfaces, modelos, firmas de métodos y similares, &MCOP; necesita referirse a los nombre de los tipos o interfaces. Éstos se representan como cadenas en las estructuras de datos comunes de &MCOP;, mientras que el nombre del espacio es siempre una representación completa en el estilo C++. Ésto significa que las cadenas podrían contener «M::A» y «B», siguiendo el ejemplo anterior. </para> + +<para +>Tenga en cuenta que esto se aplica dentro del texto &IDL; incluso sino se dieron los calificadores del espacio de nombres, desde el contexto se aclara que el interfaz del espacio de nombres <interfacename +>A</interfacename +> se utilizará dentro. </para> + +</sect2> +</sect1> + +<sect1 id="threads"> +<title +>Hilos en &arts;</title> + +<sect2 id="threads-basics"> +<title +>Básico</title> + +<para +>Usar hilos no es posible en todas las plataformas. Por eso &arts; se escribió originalmente sin hacer uso de los hilos. Para casi todos los problemas, por cada solución con hilos al problema, existe una solución sin hilos que hace lo mismo. </para> + +<para +>Por ejemplo, en lugar de colocar la salida de audio en un hilo separado, y hacer que lo bloquee, &arts; utiliza salida de audio no bloqueante, y sabe cuando escribir el siguiente bloque de datos utilizando <function +>select()</function +>. </para> + +<para +>Sin embargo, &arts; (en las versiones más recientes) al menos provee soporte para aquellos que desean implementar sus objetos usando hilos. Por ejemplo, si ya ha hecho el código para un reproductor <literal role="extension" +>mp3</literal +>, y el código espera que el decodificador <literal role="extension" +>mp3</literal +> se ejecute en un hilo distinto, normalmente lo más fácil es mantener este diseño. </para> + +<para +>La implementación &arts;/&MCOP; se construye compartiendo el estado entre objetos separados de formas obvias y no tan obvias. Una pequeña lista de los estados compartidos incluye: </para> + +<itemizedlist> +<listitem +><para +>El objeto Dispatcher que establece la comunicación con &MCOP;. </para> +</listitem> + +<listitem> +<para +>La cuenta de referencia (Referencias inteligentes). </para> +</listitem> + +<listitem> +<para +>El IOManager (administrador de E/S) que crea el contador y los relojes fd. </para> +</listitem> + +<listitem> +<para +>El administrador de objetos que crea los objetos y carga las extensiones dinámicamente. </para> +</listitem> + +<listitem> +<para +>El sistema de transmisión que llama a los bloques de cálculo cuando sea necesario. </para> +</listitem> +</itemizedlist> + +<para +>No se espera utilizar los objetos anteriores concurrentemente (&ie;, llamados desde hilos diferentes al mismo tiempo). Generalmente existen dos formas para resolver esto: </para> + +<itemizedlist> +<listitem> +<para +>Haciendo que las llamadas a este objeto desde cualquier función realicen un bloqueo antes de utilizarlo. </para> +</listitem> + +<listitem> +<para +>Haciendo que estos objetos utilicen hilos seguros y/o creen instancias para cada uno de los hilos. </para> +</listitem> +</itemizedlist> + +<para +>&arts; sigue una primera aproximación: necesitará un bloqueo siempre que se comunique con estos objetos. Una segunda aproximación es más complicada. Está disponible en <ulink url="http://space.twc.de/~stefan/kde/download/arts-mt.tar.gz" +>http://space.twc.de/~stefan/kde/download/arts-mt.tar.gz</ulink +>, pero en este punto, será más adecuada una aproximación mínima y provocará menos problemas con aplicaciones existentes. </para> + +</sect2> +<sect2 id="threads-locking"> +<title +>¿Cúando/cómo efectuar el bloqueo?</title> + +<para +>Puede crear/liberar el bloqueo con dos funciones: </para> + +<itemizedlist> +<listitem> +<para> +<ulink +url="http://space.twc.de/~stefan/kde/arts-mcop-doc/arts-reference/headers/Arts__Dispatcher.html#lock" +><function +>Arts::Dispatcher::lock()</function +></ulink> +</para> +</listitem> +<listitem> +<para> +<ulink +url="http://space.twc.de/~stefan/kde/arts-mcop-doc/arts-reference/headers/Arts__Dispatcher.html#unlock" +><function +>Arts::Dispatcher::unlock()</function +></ulink> +</para> +</listitem> +</itemizedlist> + +<para +>Generalmente, no necesitará hacer un bloqueo (y no debería intentar hacerlo), si ya estaba hecho. Una lista de condiciones cuando éste es el caso es: </para> + +<itemizedlist> +<listitem> +<para +>Recibe una llamada desde el IOManager (contador o fd). </para> +</listitem> + +<listitem> +<para +>Obtiene una llamada de una petición &MCOP;. </para> +</listitem> + +<listitem> +<para +>Recibe una llamada del administrador de notificaciones. </para> +</listitem> + +<listitem> +<para +>Recibe una llamada del sistema de transmisión (bloque de cálculo). </para> +</listitem> +</itemizedlist> + +<para +>Existen algunas excepciones a las funciones, que únicamente podrá llamar en el hilo principal, y por esta razón nunca necesitará bloquear una llamada a estas. </para> + +<itemizedlist> +<listitem> +<para +>Constructor/destructor de Dispatcher/IOManager. </para> +</listitem> + +<listitem> +<para +><methodname +>Dispatcher::run()</methodname +> / <methodname +>IOManager::run()</methodname +> </para> +</listitem> + +<listitem> +<para +><methodname +>IOManager::processOneEvent()</methodname +></para> +</listitem> +</itemizedlist> + +<para +>Para todo con lo que se relacione de alguna manera con &arts;, necesitará hacer un bloqueo, y eliminarlo nuevamente cuando haya terminado. Siempre. Veamos un ejemplo simple: </para> + +<programlisting +>class HiloTiempoSuspendido : Arts::Thread { +public: + void run() { + /* + * necesitará este bloqueo porque: + * - construir una referencia necesita un bloqueo (como global: irá + * al administrador de objetos, que puede cambiar el objeto GlobalComm + * para buscar dónde conectarse) + * - asignar una referencia inteligente necesita un bloqueo + * - construir un objeto desde una referencia necesita un bloqueo (porque + * podría necesitar conectarse a un servidor) + */ + Arts::Dispatcher::lock(); + Arts::SoundServer servidor = Arts::Reference("global:Arts_SoundServer"); + Arts::Dispatcher::unlock(); + + for(;;) { /* + * necesitaría hacer un bloqueo aquí porque + * - deshacer una referencia a una referencia inteligente precisa un bloqueo (porque se crea + * cuando hace falta) + * - hacer una llamada MCOP necesita un bloqueo + */ + Arts::Dispatcher::lock(); + long segundos = servidor.secondsUntilSuspend(); + Arts::Dispatcher::unlock(); + + printf("segundos hasta suspender = %d" segundos); + sleep(1); + } + } +} +</programlisting> + + +</sect2> + +<sect2 id="threads-classes"> +<title +>Clases relacionadas con hilos</title> + +<para +>Están disponibles las siguientes clases relacionadas con hilos: </para> + +<itemizedlist> +<listitem> +<para +><ulink url="http://www.arts-project.org/doc/headers/Arts__Thread.html" +><classname +> Arts::Thread</classname +></ulink +> - que encapsula un hilo. </para> +</listitem> + +<listitem> +<para +><ulink url="http://www.arts-project.org/doc/headers/Arts__Mutex.html" +> <classname +>Arts::Mutex</classname +></ulink +> - que encapsula un mutex (exclusión mútua). </para> +</listitem> + +<listitem> +<para +><ulink url="http://www.arts-project.org/doc/headers/Arts__ThreadCondition.html" +> <classname +>Arts::ThreadCondition</classname +></ulink +> - que provee soporte para despertar hilos que están esperando a que alguna condición se haga verdadera. </para> +</listitem> + +<listitem> +<para +><ulink url="http://www.arts-project.org/doc/headers/Arts__SystemThreads.html" +><classname +>Arts::SystemThreads</classname +></ulink +> - que encapsula la capa de hilos del sistema operativo (ofrece algunas funciones útiles para los programadores de aplicaciones). </para> +</listitem> +</itemizedlist> + +<para +>Consulte los enlaces para ver la documentación. </para> + +</sect2> +</sect1> + +<sect1 id="references-errors"> +<title +>Manejo de referencias y errores</title> + +<para +>Las referencias de &MCOP; son uno de los conceptos centrales de la programación de &MCOP;. Esta sección intentará describir como se usan exactamente las referencias, y especialmente intentará también cubrir casos de fallo (caídas del servidor). </para> + +<sect2 id="references-properties"> +<title +>Propiedades básicas de las referencias</title> + +<itemizedlist> +<listitem> +<para +>Una referencia &MCOP; no es un objeto, pero sí una referencia a un objeto. Entonces, aunque la siguiente declaración <programlisting> + Arts::Synth_PLAY p; +</programlisting +> parece la definición de un objeto, solamente declara la referencia a un objeto. Si es programador de C++, podría pensar también en Synth_PLAY, * un tipo de puntero a un objeto Synth_PLAY. También significaría que p puede ser lo mismo que un puntero NULL. </para> +</listitem> + +<listitem> +<para +>Puede crear una referencia NULL asignándola explícitamente: </para> +<programlisting +>Arts::Synth_PLAY p = Arts::Synth_PLAY::null(); +</programlisting> +</listitem> + +<listitem> +<para +>Hacer llamadas a una referencia NULL le permite hacer un volcado de memoria. </para> +<programlisting +>Arts::Synth_PLAY p = Arts::Synth_PLAY::null(); + string s = p.toString(); +</programlisting> +<para +>Hagamos un volcado de memoria. Comparar ésto con un puntero, es esencialmente lo mismo que <programlisting> + QWindow* w = 0; + w->show(); +</programlisting +> que cualquier programador de C++ podría evitar. </para> +</listitem> + +<listitem> +<para +>Los objetos sin inicializar intentan crearse cuando se utilizan la primera vez. </para> + +<programlisting +>Arts::Synth_PLAY p; + string s = p.toString(); +</programlisting> +<para +>Es algo diferente a deshacer una referencia a un puntero NULL. No le dijo al objeto lo que es, e intenta utilizarlo. La suposición aquí es que quiere crear una nueva instancia local de un objeto Arts::Synth_PLAY. Por supuesto, puede ser que quisiera obtener algo más (como crear el objeto en alguna parte, o utilizar un objeto remoto existente). Sin embargo, es una forma rápida de crear objetos. Este tipo de creación no funcionará una vez que haya realizado una asignación (como una referencia nula). </para> + +<para +>El equivalente código C++ sería <programlisting> + QWidget* w; + w->show(); +</programlisting +> que, obviamente, en C++ provocará fallos de segmentación. Aquí esto es diferente. Esta creación es especialmente delicada puesto que puede que no exista necesariamente una implementación para su interfaz. </para> + +<para +>Por ejemplo, considere algo abstracto como Arts::PlayObject. Existen algunos PlayObjets concretos como aquellos que reproducen mp3 o wav, pero <programlisting> + Arts::PlayObject po; + po.play(); +</programlisting +> ciertamente fallará. El problema es que, aunque se intente crear el objeto PlayObject cuando sea necesario, fallará debido a elementos similares a Arts:WavPlayObject. Por ello utilice este tipo de creación de objetos cuando esté seguro de que la implementación existe. </para> +</listitem> + +<listitem> +<para +>Las referencias pueden apuntar al mismo objeto </para> + +<programlisting +>Arts::SimpleSoundServer s = Arts::Reference("global:Arts_SimpleSoundServer"); + Arts::SimpleSoundServer s2 = s; +</programlisting> + +<para +>crea dos referencias apuntando al mismo objeto. No copia ningún valor, y tampoco crea dos objetos. </para> +</listitem> + +<listitem> +<para +>Todos los objetos están referenciados, por eso, una vez que un objeto deje de estar referenciado, se borrará. No hay forma explícita de borrar un objeto, sin embargo, puede utilizar algo similar a esto <programlisting> + Arts::Synth_PLAY p; + p.start(); + [...] + p = Arts::Synth_PLAY::null(); +</programlisting +> para hacer que el objeto Synth_PLAY se elimine al final. No debería ser necesario utilizar new y delete junto con las referencias. </para> +</listitem> +</itemizedlist> + +</sect2> + +<sect2 id="references-failure"> +<title +>El caso del fallo</title> + +<para +>Las referencias pueden apuntar a objetos remotos, y el servidor que contiene estos objetos puede caer. ¿Qué sucede entonces? </para> + +<itemizedlist> + +<listitem> +<para +>Un cuelgue no cambia cuando una referencia es nula. Esto significa que si <function +>foo.isNull()</function +> vale <returnvalue +>verdadero</returnvalue +> antes de que el servidor se caiga entonces también valdrá <returnvalue +>verdadero</returnvalue +> después de la caída (que está limpio). Esto también significa que si <function +>foo.isNull()</function +> vale <returnvalue +>falso</returnvalue +> antes de la caída del servidor (foo está referenciado a un objeto) entonces valdrá <returnvalue +>falso</returnvalue +> después de que el servidor se haya caído. </para> +</listitem> + +<listitem> +<para +>La llamada de métodos en una referencia válida para que sea segura supone que el servidor contiene el objeto 'calculadora' caído. Aún haciendo llamadas válidas del estilo: <programlisting> + int k = calculadora.restar(i,j) +</programlisting +> Obviamente 'restar' tiene que devolver algo, pero no podrá ya que el objeto remoto ya no existe. En este caso (k == 0) sería verdadero. Generalmente, las operaciones intentan devolver algo «neutral» como resultado, como 0,0, una referencia nula para objetos o una cadena vacía, cuando el objeto ya no exista. </para> +</listitem> + +<listitem> +<para +>La comprobación <function +>error()</function +> averigua si todo funcionó correctamente. </para> + +<para +>En el caso anterior, <programlisting> + int k = calculadora.restar(i,j) + if(k.error()) { + printf("k no es i-j!\n"); + } +</programlisting +> imprimiría <computeroutput +>k no es i-j</computeroutput +> si la llamada remota no funcionase. En otro caso <varname +>k</varname +> tomaría el valor real de la operación 'restar' devuelta por el objeto remoto (si el servidor no se ha caído). Sin embargo, para métodos que hacen cosas como borrar un archivo, no estaría seguro de si lo habría hecho. Por supuesto, lo habría hecho si <function +>.error()</function +> vale <returnvalue +>falso</returnvalue +>. Sin embargo, si <function +>.error()</function +> vale <returnvalue +>verdadero</returnvalue +>, existen dos posibilidades: </para> + +<itemizedlist> +<listitem> +<para +>El archivo se borró y el servidor cayó justo despues de borrarse, pero antes de transmitir el resultado. </para> +</listitem> + +<listitem> +<para +>El servidor cayó antes de poder borrar el archivo. </para> +</listitem> +</itemizedlist> +</listitem> + +<listitem> +<para +>Utilizar llamadas jerarquizadas es peligroso en programas resistentes a las caídas. </para> + +<para +>Usar cosas como <programlisting> + window.titlebar().setTitle("foo"); +</programlisting +> no es una buena idea. Suponga que sabe que una ventana contiene una referencia válida a Window. Suponga que sabe que <function +>window.titlebar()</function +> devolverá una referencia a Titlebar porque el objeto Window está implementado apropiadamente. Sin embargo, la declaración anterior sigue sin ser segura. </para> + +<para +>Lo que podría suceder es que el servidor que contenga el objeto Window se caiga. Entonces, a pesar de que la implementación esté bien hecha, obtendrá una referencia null como resultado de la operación window.titlebar(). Y por supuesto, llamar a setTitle en esta referencia null también producirá un cuelgue. </para> + +<para +>Una variante segura de ésto sería <programlisting> + Titlebar titlebar = window.titlebar(); + if(!window.error()) + titlebar.setTitle("foo"); +</programlisting +> Añada la gestión de error adecuada. Si no confía en la implementación de la ventana, también podrían utilizar <programlisting> + Titlebar titlebar = window.titlebar(); + if(!titlebar.isNull()) + titlebar.setTitle("foo"); +</programlisting +> que será más seguro. </para> +</listitem> +</itemizedlist> + +<para +>Existen otras condiciones que puede provocar un fallo, como una desconexión de la red (suponga que quita el cable entre su servidor y cliente mientras su aplicación se ejecuta). Sin embargo, su efecto es el mismo que una caída del servidor. </para> + +<para +>De forma general, dependerá de la política de la aplicación la forma en que ésta capturará los errores. Puede seguir el método «si el servidor se cuelga, necesitaremos depurar el servidor hasta que no haya un nuevo cuelgue», lo que significa que no necesita preocuparse por estos problemas. </para> + +</sect2> + +<sect2 id="references-internals"> +<title +>Detalles internos: Contador de referencia distribuída</title> + +<para +>Cualquier objeto existente debe ser propiedad de alguien. Si esto no es así, dejará de existir (más o menos) inmediatamente. Internamente, la propiedad se indica llamando a la función <function +>_copy()</function +>, que incrementa un contador de referencia, y se decrementa llamando a la función <function +>_release()</function +>. Tan pronto como el contador de referencia llega a cero, se producirá el borrado. </para> + +<para +>Como una variación de este tema, el uso remoto se indica por <function +>_useRemote()</function +>, y se elimina con <function +>_releaseRemote()</function +>. Estas funciones gestionan una lista que el servidor llama (y se hace propietario del objeto). Ésto se utiliza en el caso de que el servidor se desconecte (&ie;, cuelgue, fallo de red), para eliminar las referencias que todavía queden de los objetos. Esto se hace a través de <function +>_disconnectRemote()</function +>. </para> + +<para +>Ahora existe un problema. Considere un valor devuelto. Normalmente, el valor del objeto devuelto dejará de pertenecer a la función llamada. Sin embargo, no pertenecerá al que llama, hasta que no se reciba el objeto propietario del mensaje. Por tanto, existe un tiempo para los objetos «sin dueño». </para> + +<para +>Ahora, cuando se envía un objeto, se estará seguro de que tan pronto como se reciba, tendrá dueño, a menos que el receptor muera. Sin embargo, esto significa que se deben tomar medidas especiales con los objetos, al menos mientras se envían, y probablemente mientras se reciben, de modo que no mueran inmediatamente. </para> + +<para +>La forma en que &MCOP; hace esto es «etiquetando» los objetos que están en proceso de ser copiados a través de la conexión. Antes de iniciar una copia, se llama la función <function +>_copyRemote</function +>. Esto evita que el objeto se libere durante un tiempo (5 segundos). Una vez que el receptor llame a <function +>_useRemote()</function +>, se elimina la etiqueta. Por ello, todos los objetos que se envían a través de la conexión se etiquetan antes de transferirlos. </para> + +<para +>Si el receptor recibe un objeto que esté en el servidor, no podrá utilizar <function +>_useRemote()</function +> sobre él. Para este caso especial, existe <function +>_cancelCopyRemote()</function +> para eliminar la etiqueta manualmente. Además de éste, también existe un contador para eliminar la etiqueta, si es que se hizo el etiquetado y el receptor nunca recogió el objeto (debido a un cuelgue, fallo de red). Ésto lo hace la clase <classname +>ReferenceClean</classname +>. </para> + +</sect2> + +</sect1> + +<sect1 id="detail-gui-elements"> +<title +>Elementos de &GUI;</title> + +<para +>Los elementos de &GUI; están actualmente en estado experimental. Sin embargo, esta sección describirá lo que se supone que sucederá, por lo que si usted es un desarrollador, será capaz de entender como &arts; trabajará con &GUI;s en el futuro. Actualmente también existe escrito algo de código. </para> + +<para +>Los elementos de &GUI; deben usarse para permitir a las estructuras de síntesis interactuar con el usuario. En el caso más simple, el usuario debería ser capaz de modificar algunos parámetros de una estructura directamente (por ejemplo, un factor de aumento utilizado antes del final del módulo de juego). </para> + +<para +>En configuraciones más complejas, se podrían imaginar modificaciones de parámetros de grupos de estructuras por parte de los usuarios y/o de estructuras que no estén todavía en funcionamiento, como la modificación de la envolvente del <acronym +>ADSR</acronym +> del instrumento &MIDI; actualmente activo. Otras podrían configurar el nombre del archivo de algunas muestras basadas en instrumentos. </para +> + +<para +>Por otra parte, el usuario podría querer observar qué es lo que hace el sintetizador. Podría utilizar osciloscopios, analizadores de espectro, medidores de volumen y «experimentaciones» que explican la frecuencia de la curva de transferencia de alguno de los módulos de filtrado. </para> + +<para +>Finalmente, los elementos del &GUI; deben poder controlar la estructura completa que se está ejecutando en &arts;. El usuario debería ser capaz de asignar instrumentos a los canales midi, iniciar nuevos efectos de proceso, configurar su mesa de mezclas principal (que está construída con la propia estructura de &arts;) para tener un canal más y utilizar otra estrategia para sus ecualizadores. </para> + +<para +>Como puede ver, los elementos del <acronym +>GUI</acronym +> deberían incorporar todas las posibilidades de un estudio &arts; virtual simulado para el usuario. Por supuesto, debería poder interactuar de forma sencilla con las entradas midi (como, por ejemplo, deslizadores que se mueven si hay entradas &MIDI; que pueden cambiar este parámetro), y probablemente incluso generar efectos, para permitir al usuario interactuar para grabar utilizando un secuenciador. </para> + +<para +>Técnicamente, la idea es tener una clase base &IDL; para todos los componentes (<classname +>Arts::Widget</classname +>), y derivar una serie de componentes usados habitualmente a partir de él (como <classname +>Arts::Poti</classname +>, <classname +>Arts::Panel</classname +>, <classname +>Arts::Window</classname +>, ...). </para> + +<para +>Entonces, será posible implementar estos componentes utilizando un conjunto de herramientas, por ejemplo, &Qt; o Gtk. Finalmente, los efectos deberían construir sus &GUI;s a partir de los componentes existentes. Por ejemplo, un efecto freeverb podría construir su &GUI; utilizando cinco elementos <classname +>Arts::Poti</classname +> y un <classname +>Arts::Window</classname +>. Por tanto, Si existe una implementación &Qt; para estos componentes base, el efecto será capaz de mostrarse utilizando &Qt;. Si la implementación es en Gtk, también funcionará en Gtk (y más o menos funcionarán de la misma forma y tendrán un aspecto similar). </para> + +<para +>Finalmente, como estamos utilizando aquí &IDL;, &arts-builder; (u otras herramientas) será capaz de conectarse a los &GUI;s, o de autogenerar &GUI;s proporcionando pistas sobre los parámetros, y sólo está basado en interfaces. Debería ser relativamente sencillo escribir un clase «crear &GUI; a partir de la descripción», que proporciona la descripción de un &GUI; (conteniendo varios parámetros y componentes), y crear un objeto &GUI; a partir de él. </para> + +<para +>Basándose en &IDL; y en el modelo de componentes &arts;/&MCOP;, debería ser fácil extender los posibles objetos que pueden ser utilizados por el &GUI; tan solo añadiendo una implementación de extensiones para los nuevos filtros de &arts;. </para> + +</sect1> + +</chapter> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/digitalaudio.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/digitalaudio.docbook new file mode 100644 index 00000000000..6f70881d8ec --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/digitalaudio.docbook @@ -0,0 +1,16 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE appendix PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<appendix id="intro-digital-audio"> +<title +>Introducción al audio digital</title> + +<para +>Muestreos digitales, filtros, efectos, &etc;.</para> + +</appendix> + + + diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/faq.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/faq.docbook new file mode 100644 index 00000000000..8dafbb58aa6 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/faq.docbook @@ -0,0 +1,1302 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> +<chapter id="faq"> +<title +>Preguntas y respuestas</title> + +<para +>Este sección responde a algunas de las preguntas más habituales sobre &arts;. </para> + +<qandaset id="faq-general"> +<title +>Preguntas generales</title> + +<qandaentry> +<question> +<para +>¿Soporta &kde; mi tarjeta de sonido para reproducción de audio? </para> +</question> + +<answer> +<para +>&kde; utiliza &arts; para reproducir sonido, y &arts; utiliza los controladores de sonido del núcleo de &Linux;, ya sean <acronym +>OSS</acronym +> o <acronym +>ALSA</acronym +> (utilizando la emulación de <acronym +>OSS</acronym +>). Si su tarjeta de sonido está soportada por <acronym +>ALSA</acronym +> o por <acronym +>OSS</acronym +> y correctamente configurada (&ie;, cualquier otra apliación de Linux puede reproducir sonido), funcionará. Hay, sin embargo, algunos problemas con hardware específico, por favor, lea la <link linkend="faq-hardware-specific" +>sección sobre problemas con hardware específico</link +> si tiene problemas con artsd en su ordenador. </para> +<para +>Mientras tanto se ha añadido soporte para varias plataformas más. Ésta es una lista completa de cómo se puede reproducir sonido con la versión más reciente de &arts;. Si su plataforma no está soportada, por favor, considere realizar usted mismo las modificaciones oportunas para que funcione. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Método de E/S de audio de &arts;</entry> +<entry +>Comentario</entry> +</row> +</thead> + +<tbody> +<row> +<entry +>paud</entry> +<entry +>Soporte para el dispositivo de audio personal de AIX</entry> +</row> + +<row> +<entry +>alsa</entry> +<entry +>Controladores ALSA-0.5 y ALSA-0.9 de Linux</entry> +</row> + +<row> +<entry +>libaudioio</entry> +<entry +>Soporte para la biblioteca genérica LibAudioIO que funciona en Solaris</entry> +</row> + +<row> +<entry +>nas</entry> +<entry +>Servidor de sonido NAS, útil para los terminales X con soporte para NAS</entry> +</row> + +<row> +<entry +>null</entry> +<entry +>Dispositivo de audio nulo, elimina todo el sonido silenciosamente</entry> +</row> + +<row> +<entry +>oss</entry> +<entry +>Soporte para OSS (sistema de sonido abierto), funciona en Linux, varios BSDs y otras plataformas con los controladores OSS instalados</entry> +</row> + +<row> +<entry +>toss</entry> +<entry +>Soporte para OSS multihilo, que funciona mejor en los casos donde el OSS estándar no lo hace correctamente</entry> +</row> + +<row> +<entry +>sgi</entry> +<entry +>Soporte directo multimedia de SGI para IRIX</entry> +</row> + +<row> +<entry +>sun</entry> +<entry +>Soporte para Solaris</entry> +</row> + +</tbody> +</tgroup> +</informaltable> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>No puedo reproducir archivos <literal role="extension" +>wav</literal +> con &artsd;. </para> +</question> + +<answer> +<para +>Compruebe que &artsd; está correctamente enlazado con <filename +>libaudiofile</filename +> (<userinput +><command +>ldd</command +> <parameter +>artsd</parameter +></userinput +>). Si no lo está, descargue el paquete tdesupport, recompílelo todo y funcionará. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Escucho sonidos cuando entro en el sistema como <systemitem class="username" +>root</systemitem +>, pero ningún otro usuario tiene sonido. </para> +</question> + +<answer> +<para +>Los permisos del archivo <filename class="devicefile" +>/dev/dsp</filename +> afectan a que los usuarios tengan o no sonido. Para que funcione correctamente, haga esto: </para> + +<procedure> +<step> +<para +>Acceda al sistema como <systemitem class="username" +>root</systemitem +>. </para> +</step> + +<step> +<para +>Abra una ventana de &konqueror;. </para> +</step> + +<step> +<para +>Vaya a la carpeta <filename class="directory" +>/dev</filename +>. </para> +</step> + +<step> +<para +>Pinche en el archivo <filename +>dsp</filename +> con el botón <mousebutton +>derecho</mousebutton +> del ratón, y abra las propiedades. </para> +</step> + +<step> +<para +>Pinche en el apartado <guilabel +>Permisos</guilabel +>. </para> +</step> + +<step> +<para +>Active las casillas <guilabel +>Leer</guilabel +> y <guilabel +>Escribir</guilabel +> en todas las secciones. </para> +</step> + +<step> +<para +>Pinche en <guibutton +>Aceptar</guibutton +>. </para> +</step> +</procedure> + +<para +>Puede conseguir los mismos resultados desde una ventana de terminal con la orden <userinput +><command +>chmod</command +> <option +>666</option +> <parameter +>/dev/dsp</parameter +></userinput +>. </para> + +<para +>Para restringir el sonido a algunos usuarios específicos, puede utilizar los permisos de grupo. En algunas distribuciones de &Linux; como Debian/Potato, <filename class="devicefile" +>/dev/dsp</filename +> ya aparece en propiedad de un grupo llamado <systemitem class="groupname" +>audio</systemitem +>, así que lo único que tiene que hacer es añadir los usuarios a ese grupo. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Esto vale para &artsd; pero, ¿qué hay de &kmix;, &kmid;, &kscd;, &etc;? </para> +</question> +<answer> + +<para +>Hay otros dispositivos que proporcionan la funcionalidad a la que acceden las aplicaciones multimedia. Puede tratarlos de la misma manera, bien haciéndolos accesibles para todo el mundo, o utilizando grupos para controlar el acceso. Esta es una lista, que puede estar incompleta (en caso de que haya varios dispositivos en la forma <filename class="devicefile" +>midi0</filename +>, <filename class="devicefile" +>midi1</filename +>, ..., aquí sólo se mostrará la versión 0): </para> + +<itemizedlist> +<listitem> +<para> +<filename class="devicefile" +>/dev/admmidi0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/adsp0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/amidi0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/amixer0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/audio</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/audio0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/cdrom</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/dmfm0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/dmmidi0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/dsp</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/dsp0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/midi0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/midi0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/midi00</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/midi00</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/mixer</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/mixer0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/mpu401data</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/mpu401stat</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/music</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/rmidi0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/rtc</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/sequencer</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/smpte0</filename> +</para> +</listitem> +<listitem> +<para> +<filename class="devicefile" +>/dev/sndstat</filename> +</para> +</listitem> +</itemizedlist> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿Qué puedo hacer si artsd no se inicia o si se cuelga durante el funcionamiento?</para> +</question> + +<answer> +<para +>En primer lugar: trate de utilizar los parámetros predeterminados en &kcontrol; (o si lo ha iniciado manualmente, no incluya argumentos adicionales salvo quizá <userinput +><option +>-F</option +><parameter +>10</parameter +> <option +>-S</option +><parameter +>4096</parameter +></userinput +> para latencia). En contreto es <emphasis +>bastante probable que falle el full duplex</emphasis +> (transmisión bidireccional) con varios controladores, así que pruebe a desactivarlo. </para> + +<para +>Una buena forma de investigar por qué no se inicia &artsd; (o se cuelga durante el funcionamiento) es cargarlo manualmente. Abra una ventana de &konsole; y teclee: </para> + +<screen width="40" +><prompt +>%</prompt +> <userinput +><command +>artsd</command +> <option +>-F</option +><parameter +>10</parameter +> <option +>-S</option +><parameter +>4096</parameter +></userinput +></screen> + +<para +>También puede incluir la opción <option +>-l0</option +>, que mostrará más información sobre lo que está ocurriendo, como aquí: </para> +<screen width="40" +><prompt +>%</prompt +> <userinput +><command +>artsd</command +> <option +>-l0</option +> <option +>-F</option +><parameter +>10</parameter +> <option +>-S</option +><parameter +>4096</parameter +></userinput +></screen> + +<para +>Al hacer esto, lo más probable es que obtenga suficiente información sobre los motivos de los fallos. O, si se cuelga al hacer una cosa concreta, puede hacerla en este momento para observar «cómo» falla. Si desea informar de un fallo, el generar un trazado inverso con <command +>gdb</command +> y/o <command +>strace</command +> puede ayudar a localizar el problema. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿Se pueden mover los archivos compilados de &artsd; a otra carpeta?</para> +</question> + +<answer> +<para +>No se podrá mover &artsd; sin problemas directamente. El único inconveniente es que &artswrapper; guarda la localización de &artsd; compilada por motivos de seguridad. Usted puede, sin embargo, utilizar el archivo <filename +>.mcoprc</filename +> (entradas TraderPath/ExtensionPath) para indicar a &artsd; dónde puede localizar sus componentes. Vea el <link linkend="the-mcoprc-file" +>capítulo sobre el archivo <filename +>.mcoprc</filename +></link +> para obtener más detalles sobre esto. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿Puedo compilar &arts; con gcc-3.0?</para> +</question> + +<answer> +<para +>Respuesta rápida: no, &arts; no funcionará si lo compila con gcc-3.0. </para> + +<para +>Respuesta más larga: en su publicación oficial, hay dos fallos en gcc-3.0 que afectan a &arts;. El primero, fallo gcc-3.0 c++/2733 es relativamente inofensivo (y está relacionado con problemas con las declaraciones del ensamblador). Impide la compilación de convert.cc. Ya ha sido corregido en el CVS de gcc-3.0, y no será un problema en gcc-3.0.1 y superiores. Además hay una solución en la versión CVS de KDE/aRts. </para> +<para +>El segundo fallo de gcc-3.0, el c++/3145 (que trata sobre la generación de código erróneo en algunos casos de herencia virtual múltiple), es crítico. Las aplicaciones como &artsd; simplemente no funcionarán si están compiladas con gcc-3.0. Aunque se está haciendo algún progreso al respecto en la rama de gcc-3.0 en el momento de escribir esto, &artsd; sigue fallando habitualmente y de forma impredecible. </para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>¿Qué aplicaciones funcionan bajo &arts;?</para> +</question> +<answer> + +<para +>Obviamente, todas las aplicaciones incluídas en &kde; funcionan con &arts;. Ésto incluye: </para> + +<itemizedlist> +<listitem +><para +>&noatun;.</para +></listitem> +<listitem +><para +>&arts-builder;.</para +></listitem> +<listitem +><para +>&aktion;.</para +></listitem> +<listitem +><para +>&kmid;.</para +></listitem> +<listitem +><para +>&kmidi;.</para +></listitem> +<listitem +><para +>&kmix;.</para +></listitem> +<listitem +><para +>&kscd;.</para +></listitem> +<listitem +><para +>Juegos de &kde; como &kpoker; y &ktuberling;.</para +></listitem> +</itemizedlist> + +<para +>Algunas aplicaciones &kde; que aún no se incluyen en las publicaciones de &kde; (⪚, en kdenonbeta) también soportan &arts;, incluyendo: </para> + +<itemizedlist> +<listitem +><para +>&brahms;.</para +></listitem> +<listitem +><para +><application +>Kaboodle.</application +></para +></listitem> +<listitem +><para +><application +>Kdao.</application +></para +></listitem> +</itemizedlist> + +<para +>La siguientes aplicaciones que no son de &kde; también soportan &arts;: </para> + +<itemizedlist> +<listitem +><para +><application +>xmms</application +> (con el conector &arts;).</para +></listitem> +<listitem +><para +>Real Networks <application +>RealPlayer</application +> 8.0 (funciona con &artsdsp;. Se está considerando el soporte nativo de &arts;).</para +></listitem> +</itemizedlist> + +<para +>La siguientes aplicaciones <emphasis +>no</emphasis +> funcionan con &arts;: </para> + +<itemizedlist> +<listitem +><para +>none</para +></listitem> +</itemizedlist> + +<para +>Vea también las respuestas a las preguntas en la sección sobre <link linkend="faq-non-arts" +>aplicaciones que no son de &arts;</link +>. </para> + +<para +>Esta sección está incompleta, si tiene más información sobre aplicaciones soportadas o no soportadas, por favor, póngase en contacto con el autor para poder incluir aquí esos datos. </para> +</answer> +</qandaentry> + +</qandaset> + +<qandaset id="faq-non-arts"> +<title +>Aplicaciones que no son de &arts;</title> + +<qandaentry> +<question> +<para +>Una vez que &kde; está funcionando, ninguna otra aplicación puede acceder al dispositivo de sonido. </para> +</question> +<answer> +<para +>Ya que el servidor de sonido &arts;, utilizado por &kde;, está ocupando el dispositivo de sonido. Si el servidor está inactivo durante más de 60 segundos, se auto suspende y libera el dispositivo automáticamente. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Se supone que la suspensión es en 60 segundos, pero no en mi caso. </para> +</question> +<answer> +<para +>Si inicia artsd desde el panel de control de KDE, el tiempo de suspensión predeterminado es de 60 segundos. Si inicia artsd desde la línea de órdenes necesitará utilizar la opción -s para especificar el tiempo para la suspensión. De otro modo, el comportamiento predeterminado es desactivar la característica de suspensión. </para> +<para +>En este momento no hay suspensión si está en uso el full duplex. Apague el full duplex desde &kcontrol; para que funcione la suspensión. Desactivar el full duplex es una buena idea si &arts; se utiliza para la reproducción y no para la grabación de audio. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿Cómo puedo ejecutar aplicaciones antíguas o que no soporten &arts;? </para> +</question> + +<answer> +<para +>Ejecútelas utilizando &artsdsp;. Por ejemplo, si normalmente ejecutaría: </para> + +<screen +><prompt +>%</prompt +> <userinput +><command +>mpg123</command +> <option +>cosa.mp3</option +></userinput +></screen> + +<para +>utilice ahora:</para> + +<screen +><prompt +>%</prompt +> <userinput +><command +>artsdsp</command +> <option +>mpg123 cosa.mp3</option +></userinput +></screen> + +<para +>Esto reenviará la salida de sonido a &arts;. Este método no requiere realizar cambios en las aplicaciones. Es, sin embargo, una solución un poco engorrosa y que, además, no admite todas las características de las tarjetas de sonido, así que algunas aplicaciones podrían no funcionar. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>No puedo ejecutar &artsdsp; con ninguna aplicación, siempre falla. </para> +</question> +<answer> +<para +>Necesita una versión reciente de la biblioteca glibc. &artsdsp; no funcionará de forma fiable en distribuciones antiguas de &Linux;. Por ejemplo, en Debian 2.1 (basada en glibc 2.0) no funciona, mientras que en Debian 2.2 (basada en glibc 2.1.3), lo hace correctamente. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿Hay algún tipo de límite teórico en las aplicaciones que evitaría el funcionamiento con &artsdsp;? </para> +</question> +<answer> +<para +>No. El uso de &artsdsp; puede resultar más lento y cargar más procesador que utilizar las <acronym +>API</acronym +>s de &arts; directamente. A parte de eso, cualquier aplicación que no funcione se deberá considerar como un fallo en &artsdsp;. La técnica utilizada por &artsdsp; debería, si está implementada correctamente, permitir que <emphasis +>cualquier</emphasis +> aplicación funcione (incluyendo aplicaciones grandes como <application +>Quake</application +> 3). </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿Qué puedo hacer si una aplicación no funciona con &artsdsp;? </para> +</question> +<answer> +<para +>Puede esperar a que &artsd; entre en suspensión o utilizar la orden <userinput +><command +>artsshell</command +> <option +>suspend</option +></userinput +> para hacer que el servidor entre forzosamente en suspensión. Sólo podrá suspender el servidor si no hay ninguna aplicación utilizando &arts; en ese momento, y no se permitirá el funcionamiento de ninguna aplicación que utilice &arts; durante el tiempo que dure la suspensión. </para> + +<para +>Si el servidor está ocupado, este es un método un poco bruto, pero efectivo, de solucionarlo: </para> + + +<screen +><prompt +>%</prompt +> <userinput +><command +>killall</command +> <option +>artsd</option +> ; <command +>killall</command +> <option +>artswrapper</option +></userinput> +<lineannotation +>Ahora inicie la aplicación.</lineannotation> +<prompt +>%</prompt +> <userinput +><command +>kcminit</command +> <option +>arts</option +></userinput +> +</screen> + +<para +>Ésto puede provocar que las aplicaciones que utilicen &arts; en ese momento fallen, al haberse cerrado el servidor. </para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>¿Qué ocurre con las aplicaciones escritas para &kde; 1.x? </para> +</question> +<answer> +<para +>Si está ejecutando aplicaciones de &kde; 1.x, cuya salida de sonido es a través del servidor de audio de &kde; 1, deberá ejecutar <application +>kaudioserver</application +> para que funcionen. Puede iniciar <application +>kaudioserver</application +> de la misma forma que otras aplicaciones que no son de &arts;: </para> + +<screen +><prompt +>%</prompt +> <userinput +><command +>artsdsp</command +> <option +>kaudioserver</option +></userinput +> +</screen> + +<para +>Deberá tener instalado kaudioserver (del mismo sitio del que haya obtenido las aplicaciones de &kde; 1.x), pertenece a &kde; 1.x y no a &kde; 2. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿Qué ocurre con las aplicaciones que utilizan el servidor de sonido mejorado, <acronym +>ESD</acronym +>? </para> +</question> +<answer> +<para +>El problema es similar al de <application +>kaudioserver</application +>. Esas aplicaciones necesitan un servidor esd funcionando. Puede iniciar <command +>esd</command +> a través de &artsdsp;, y todas las aplicaciones <acronym +>ESD</acronym +> funcionarán correctamente, de esta manera: </para> +<screen +><prompt +>%</prompt +> <userinput +><command +>artsdsp</command +> <option +>esd</option +></userinput +> +</screen> +<para +>Las nuevas versiones de aRts ( +>= 1.2.0) también pueden utilizar el demonio de sonido mejorado en lugar de acceder directamente a la tarjeta de sonido. En la línea de órdenes, puede utilizar la opción -a, de la siguiente forma: </para> +<screen +><prompt +>%</prompt +> <userinput +><command +>artsd</command +> <option +>-a esd</option +></userinput +> +</screen> +<para +>para conseguir soporte de EsounD, en KDE podrá utilizar kcontrol para configurar artsd y utilizar esd a través de Sonidos y multimedia -> Sistema de sonido -> E/S sonido. </para> +</answer> +</qandaentry> + +</qandaset> + +<qandaset id="faq-latency"> +<title +>Latencia</title> + +<qandaentry> +<question> +<para +>En ocasiones oigo pequeñas pausas al escuchar música, ¿se trata de un fallo? </para> +</question> +<answer> +<para +>Lo más probable es que no, sino que esté causado por el hecho de que el núcleo de &Linux; no se lleva muy bien con el procesamiento a tiempo real. Hay situaciones en las que &arts; no es capaz de mantener el flujo de reproducción. Usted puede, sin embargo, activar derechos de tiempo real (a través de &kcontrol;), y utilizar un tiempo de latencia grande (como <guilabel +>250ms</guilabel +> o <guilabel +>tan grande como sea posible</guilabel +>), lo que debería mejorar la situación. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿Qué efecto tiene el parámetro del tiempo de respuesta? </para> +</question> +<answer> +<para +>El texto de ayuda de este parámetro en &kcontrol; puede despistas. Un valor más bajo significa que &arts; tardará menos tiempo en responder a los eventos externos (&ie;, el tiempo que pasa desde que se selecciona una ventana hasta que se oye un sonido reproducido por &artsd;). Además utiliza más recursos de <acronym +>CPU</acronym +>, y lo más probable es que produzca más ruidos.</para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿Se puede hacer algo para evitar las pausas? </para> +</question> +<answer> +<para +>Los usuarios de los discos duros <acronym +>IDE</acronym +> puede utilizar la orden <command +>hdparm</command +> para poner sus discos en modo <acronym +>DMA</acronym +>. Una advertencia: esto no funciona con todo el hardware, y puede dar como resultado el tener que reiniciar el sistema o, en algún caso poco habitual, en pérdida de datos. Lea la documentación sobre la orden <command +>hdparm</command +> para obtener más detalles. Yo lo he utilizado con éxito: </para> + +<screen +><prompt +>%</prompt +> <userinput +><command +>hdparm</command +> <option +>-c1</option +> <option +>-d1</option +> <option +>-k1</option +> <option +>-K1</option +> <parameter +>/dev/hda</parameter +></userinput +> +</screen> + +<para +>Debe hacer esto después de cada inicio del sistema, así que lo mejor es que lo incluya en algún script al inicio del sistema (esto depende de las distribuciones, en Debian &Linux; lo normal es añadirlo a <filename +>/etc/rc.boot</filename +>). </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿La prioridad de tiempo real no parece tener ningún efecto? </para> +</question> +<answer> +<para +>Verifique que artswrapper está instalado con permisos suid de <systemitem class="username" +>root</systemitem +>, como se supone que debería estarlo. Muchas distribuciones (SuSE7.x, por ejemplo) no hacen esto. Puede verificarlo utilizando: ls -l $(which artswrapper). Correcto: <screen> +<prompt +>%</prompt +> <userinput +><command +>ls</command +> <option +>-l</option +> <parameter +>$(which artswrapper)</parameter +></userinput> +-rwsr-xr-x 1 root root 4556 Sep 24 18:05 /opt/kde2/bin/artswrapper +</screen +> Incorrecto: <screen> +<prompt +>%</prompt +> <userinput +><command +>ls</command +> <option +>-l</option +> <parameter +>$(which artswrapper)</parameter +></userinput> +-rwxr-xr-x 1 root root 4556 Sep 24 18:05 /opt/kde2/bin/artswrapper +</screen +> Si no tiene la s, puede ponerla utilizando: <screen +><prompt +>%</prompt +> <userinput +><command +>chown</command +> <option +>root</option +> <parameter +>$(which artswrapper)</parameter +></userinput> +<prompt +>%</prompt +> <userinput +><command +>chmod</command +> <option +>4755</option +> <parameter +>$(which artswrapper)</parameter +></userinput +> +</screen> +</para> + +<para +>Si hace &artswrapper; SUID <systemitem class="username" +>root</systemitem +>, probablemente mejorará la calidad de su sistema de audio reduciendo las distorsión en la música. Sin embargo, se incrementará el riesgo de que un fallo en el código o un usuario malicioso pueda colgar o dañar su máquina. Adicionalmente, en las máquinas multi-usuario, priorizar la alta calidad de audio puede deteriorar el rendimiento para los usuarios que intenten hacer un uso «productivo» de la máquina.</para> + +</answer> +</qandaentry> + + +<qandaentry> +<question> +<para +>¿Por qué &artsd; consume tanto tiempo de <acronym +>CPU</acronym +>? </para> +</question> +<answer> +<para +>Compruebe sus parámetros de tiempo de respuesta. Sin embargo, la versión actual no está muy optimizada. Esto mejorará, y hasta ese momento no se puede hacer una predicción real de lo rápido o lento que puede ser &artsd;. </para> +</answer> +</qandaentry> +</qandaset> + +<qandaset id="faq-network"> +<title +>Transparencia de red</title> + +<qandaentry> +<question> +<para +>¿Qué necesito para la transparencia de red? </para> +</question> +<answer> +<para +>Actívela en los parámetros del <guilabel +>Servidor de sonido</guilabel +> de &kcontrol; (<guilabel +>activar el servidor X11 para información de seguridad</guilabel +> y <guilabel +>transparencia de red</guilabel +>). Después copie su archivo <filename +>.mcoprc</filename +> a todas las máquinas en las que piense utilizar la transparencia de red. Vuelva a acceder al sistema. Asegúrese de que los ordenadores que está interaccionando conocen los nombres de los otros (&ie;, los nombres que resolverá o que se encuentren en el archivo <filename +>/etc/hosts</filename +>). </para> + +<para +>Esto debería ser todo. Sin embargo, si aún no funciona, aquí tiene algún detalle adicional. El proceso del servidor de sonido &arts;, &artsd;, sólo debe ejecutarse en uno de los sistemas, el que tenga la tarjeta de sonido que reproducirá el audio. Se puede iniciar automáticamente al acceder a &kde; (si está configurado en &kcontrol;), o de forma manual utilizando algo como: </para> + +<screen +><prompt +>%</prompt +> <userinput +><command +>artsd</command +> <option +>-n</option +> <option +>-F</option +> <parameter +>5</parameter +> <option +>-S</option +> <parameter +>8192</parameter +></userinput +> +</screen> + +<para +>El parámetro <option +>-n</option +> es para la transparencia de red, mientras que los otros tienen que ver con la lantencia. </para> + +<para +>El archivo <filename +>.mcoprc</filename +> debe contener esta entrada: </para> + +<screen +><userinput +>GlobalComm=Arts::X11GlobalComm</userinput +> +</screen> + +<para +>en todas las máquinas involucradas, para hacer que funcione la transparencia de red. Esto es lo que se activa con el parámetro del panel de control <guilabel +>del servidor X11 para información de seguridad</guilabel +>. </para> + +<para +>Por último, en todas la versiones de &kde; de la serie 2.0.x, hay un error que influye si no está configurado el nombre del dominio. Los clientes de &artsd; tratan de buscar dónde conectarse a través de la combinación <systemitem class="systemname" +><replaceable +>nombresistema</replaceable +>.<replaceable +>nombredominio</replaceable +></systemitem +>. Si el nombre del dominio está vacío, tratará de conectarse a <systemitem class="systemname" +><replaceable +>nombresistema</replaceable +></systemitem +>. (tenga en cuenta el punto adicional). Si se añade una entrada como ésta al archivo <filename +>/etc/hosts</filename +> (&ie;, <userinput +>orion.</userinput +> si el nombre de su sistema es <systemitem class="systemname" +>orion</systemitem +>), soluciona el problema. </para> +</answer> +</qandaentry> + + +<qandaentry> +<question> +<para +>¿Cómo puedo analizar la transparencia de red si no funciona? </para> +</question> +<answer> +<para +>Asumiendo que usted tiene acceso al código fuente de &kde;, vaya a <filename class="directory" +>tdelibs/arts/examples</filename +>, y ejecute <userinput +><command +>make</command +> <option +>check</option +></userinput +> para compilar algunos programas, incluyendo <application +>referenceinfo</application +>. A continuación ejecute </para> + +<screen +><prompt +>%</prompt +> <userinput +><command +>./referenceinfo</command +> <option +>global:Arts_SimpleSoundServer</option +></userinput +> +</screen> + +<para +>La salida indicará el nombre del sistema y el puerto que están siendo utilizados por &arts;. Por ejemplo, <computeroutput +>tcp:orion:1698</computeroutput +> significa que cualquier cliente que intente utilizar la transparencia de red debería ser capaz de acceder al sistema <systemitem class="systemname" +>orion</systemitem +>. </para> +</answer> +</qandaentry> + +</qandaset> + +<qandaset id="faq-hardware-specific"> +<title +>Preguntas específicas de hardware</title> + +<qandaentry> +<question> +<para +>¿Con qué hardware no funciona artsd correctamente? </para> +</question> +<answer> +<para +>Parece ser que existen unos pocos controladores linux que no funcionan bien con aRts en algunas versiones del núcleo. Por favor, lea esta lista antes de informar de un fallo. Si encuentra que parte de la información de esta lista esta incompleta, por favor, no dude en comunicarlo. <informaltable +> <tgroup cols="4"> +<thead> +<row> +<entry +>Controlador / tarjeta de sonido linux</entry> +<entry +>Falla bajo</entry> +<entry +>Funciona bajo</entry> +<entry +>Observaciones</entry> +</row> +</thead> + +<tbody> +<row> +<entry +>controlador i810 (Intel 810 + audio AC97)</entry> +<entry +>2.4.9</entry> +<entry +>2.4.18, 2.2.20, controlador oss comercial, alsa-0.5.12a con emulación OSS</entry> +<entry +>el controlador provoca sobrecarga de la cpu (ver debajo)</entry> +</row> + +<row> +<entry +>chipset 3/4 maestro</entry> +<entry +>2.4.9</entry> +<entry +>?</entry> +<entry +>el controlador algunas veces provoca la sobrecarga de la cpu (ver debajo)</entry> +</row> + +<row> +<entry +>controladores aureal8820 y aureal8830 de sourceforge</entry> +<entry +>2.4.17</entry> +<entry +>?</entry> +<entry +>el controlador activa el disparador/provoca la sobrecarga de la cpu (ver debajo)</entry> +</row> + +<row> +<entry +>OSS Comercial 3.9.4g con Aureal Vortex</entry> +<entry +>?</entry> +<entry +>?</entry> +<entry +>bloqueo del sistema</entry> +</row> + +<row> +<entry +>ymfpci</entry> +<entry +>2.4.0, 2.4.12</entry> +<entry +>2.4.17</entry> +<entry +>el controlador activa el disparador (ver debajo)</entry> +</row> + + + +</tbody> +</tgroup> +</informaltable> +</para> +</answer> +</qandaentry> + + + +<qandaentry> +<question> +<para +>¿Por qué se producen los problemas específicos de hardware y cómo puedo detectarlos? </para> +</question> +<answer> +<para +>La causa más común es que el controlador no proporciona a aRts la suficiente información sobre cuándo se debe escribir información de sonido. La mayoría de los controladores OSS proporcionan la información correcta, pero no todos. </para> +<para +>Puede que advierta que hay otras aplicaciones (como xmms) que no necesitan esta información, y que, sin embargo, funcionan correctamente incluso con su hardware. A pesar de todo, &arts; necesita esa información, o artsd no funcionará correctamente. Esto es un fallo del controlador, y no de &arts;. </para> +<para +>Hay dos tipos de comportamientos que artsd muestra cuando se está ejecutando un controlador incorrecto. O bien trata de forma contínua de enviar nueva información, pero nunca lo consigue, lo que produce un consumo de toda la potencia de la CPU, informa de <emphasis +>sobrecarga en la cpu</emphasis +> y sale. El otro problema es que a artsd se le puede comunicar información incorrecta sobre la cantidad de datos a escribir. En este caso artsd <emphasis +>se detendrá mostrando una advertencia</emphasis +> de este aspecto: <screen +>artsd: audiosubsys.cc:458: void Arts::AudioSubSystem::handleIO(int): +Assertion `len == can_write' failed. +Aborted +</screen> +</para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿Qué tiene mal el controlador si se produce el problema de la sobrecarga de la cpu? </para> +</question> +<answer> +<para +>Normalmente, artsd utiliza select() para descubrir cuándo se deben escribir nuevos datos. Entonces, utiliza la función ioctl(...GETOSPACE) para descubrir cuánta información debe escribir. Por último, escribe esa información. </para> +<para +>Los problemas ocurren cuando se llama a artsd contínuamente o si hay para escribir cantidades de información mínimas. La documentación de OSS especifica que select() únicamente llama a un proceso si hay al menos un fragmento para escribir. Sin embargo, si se llama a artsd sin datos para escribir, o muy pocos, por ejemplo, una sola muestra, este se mantendrá escribiendo pequeños segmentos de datos de audio, lo que resulta muy costoso y puede, en determinados casos, sobrecargar la cpu. </para> +<para +>Para solucionar esto, el controlador debe llamar a artsd únicamente si hay para escribir un fragmento completo. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>¿Qué le ocurre al controlador si se produce la advertencia? </para> +</question> +<answer> +<para +>Normalmente, artsd utiliza select() para descubrir cuándo se deben escribir nuevos datos. Entonces, utiliza la función ioctl(...GETOSPACE) para descubrir cuánta información debe escribir. Por último, escribe esa información. </para> +<para +>Si artsd no puede escribir toda la información que indica la llamada a ioctl, producirá una advertencia. Para solucionarlo, el controlador debe proporcionar la información correcta sobre la cantidad de espacio libre. </para> +</answer> +</qandaentry> +</qandaset> + +<qandaset id="faq-other"> +<title +>Otros problemas</title> + +<qandaentry> +<question> +<para +>No puedo utilizar &arts-builder;. ¡Falla al ejecutar un módulo! </para> +</question> +<answer> +<para +>La causa más probable es que está utilizando estructuras antiguas o módulos que no están soportados en la versión 2 de &kde;. Por desgracia, la documentación que se encuentra en la web hace referencia a &arts;-0.3.4.1, que ya está obsoleto. El error del que más se informa es: que ejecutar una estructura en &arts-builder; da como resultado el mensaje de error <errorname +>[artsd] Synth_PLAY: el subsistema de audio ya está en uso.</errorname +> </para> + +<para +>Utilizando el módulo Synth_AMAN_PLAY en lugar de Synth_PLAY, el problema desaparecerá. Consulte también el archivo de ayuda de &arts-builder; (pulse <keycap +>F1</keycap +> en &arts-builder;). </para> + +<para +>Las versiones más recientes de &arts-builder; (&kde; 2.1 beta 1 y posteriores) vienen con un conjunto de ejemplos que pueden ser utilizados. </para> +</answer> +</qandaentry> + +</qandaset> + +</chapter> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/future.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/future.docbook new file mode 100644 index 00000000000..382c2d62024 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/future.docbook @@ -0,0 +1,399 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant +V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<chapter id="future-work"> +<title +>Trabajo futuro</title> + +<para +>Esta sección describe algunos de los trabajos que están en progreso dentro de &arts;. El desarrollo avanza rápidamente, así que esta información podría estar obsoleta. Debería comprobar la lista del archivo TODO y los archivos de <link linkend="mailing-lists" +>la lista de correo</link +> para ver qué nueva funcionalidad se está planeando. Considérese libre para involucrarse en el nuevo diseño e implementación. </para> + +<para +>Este documento es un borrador que intenta dar una idea sobre cómo se integrarán las nuevas tecnologías en &arts;. En concreto, se ocupa de lo siguiente: </para> + +<itemizedlist> +<listitem +><para +>Cómo funcionan los interfaces.</para +></listitem> +<listitem +><para +>Los códecs: La decodificación de transmisiones mp3 o wav de forma que puedan ser utilizados como datos.</para +></listitem> +<listitem +><para +>Vídeo.</para +></listitem> +<listitem +><para +>Hilos.</para +></listitem> +<listitem +><para +>Sincronización.</para +></listitem> +<listitem +><para +>Expansión/enmascaramiento dinámico.</para +></listitem> +<listitem +><para +>Composición dinámica.</para +></listitem> +<listitem +><para +>&GUI;</para +></listitem> +<listitem +><para +>&MIDI;</para +></listitem> +</itemizedlist> + +<para +>Este trabajo está en progreso. Sin embargo, debería ser la base si lo que usted desea es encontrar nuevas tecnologías en &arts;. Además debería de dar una idea de cómo se van a afrontar esas cuestiones. Pero, por supuesto, corrija cualquier cosa que considere que se puede mejorar. </para> + +<para +>Elementos que utilizarán la tecnología de &arts; (así que, por favor, coordine sus esfuerzos): </para> + +<itemizedlist> +<listitem> +<para +><application +>KPhone</application +> (voz sobre <acronym +>IP</acronym +>). </para> +</listitem> + +<listitem> +<para +>&noatun; (reproductor de vídeo y audio). </para> +</listitem> + +<listitem> +<para +>&artscontrol; (programa de control del servidor de sonido). </para> +</listitem> + +<listitem> +<para +><application +>Brahms</application +> (secuenciador musical). </para> +</listitem> + +<listitem> +<para +><application +>Kaiman</application +> (reproductor de medios de &kde;2, compatible con kmedia2). </para> +</listitem> + +<listitem> +<para +><application +>mpglib</application +>/<application +>kmpg</application +> (tecnología de reproducción de audio y vídeo <acronym +>mpg</acronym +>). </para> +</listitem> + +<listitem> +<para +><application +>SDL</application +> (capa de medios directa para los juegos, aún no se ha comenzado a trabajar en ella pero será interesante). </para> +</listitem> + +<listitem> +<para +><application +>electric ears</application +> (el autor se puso en contacto conmigo. Estado desconocido). </para> +</listitem> +</itemizedlist> + +<sect1 id="interfaces-how"> +<title +>Cómo funcionan los interfaces</title> + +<!-- I think this is now obsolete and documented elsewhere ? --> + +<para +>Los interfaces &MCOP; están basados en el concepto de &arts;. Son transparentes a la red de forma equivalente a las clases de C++. Siempre que sea posible, debería orientar sus diseño hacia los interfaces. Éstos constan de cuatro partes: </para> + +<itemizedlist> +<listitem +><para +>Flujos síncronos.</para +></listitem> +<listitem +><para +>Flujos asíncronos.</para +></listitem> +<listitem +><para +>Métodos.</para +></listitem> +<listitem +><para +>Atributos.</para +></listitem> +</itemizedlist> + +<para +>Estos pueden mezclarse como usted prefiera. Las nuevas tecnologías deberían definirse en términos de interfaces. Lea las secciones sobre las transmisiones síncronas y asícronas, así como los interfaces KMedia2, ya que son buenos ejemplos sobre cómo funcionan las cosas. </para> + +<para +>Los interfaces se especifican en código <literal role="extension" +>.idl</literal +> y se ejecutan a través del compilador <command +>mcopidl</command +>. Se deriva la clase <classname +><replaceable +>Nombreinterfaz</replaceable +>_impl</classname +> para implementarlos, y se utiliza <function +>REGISTER_IMPLEMENTATION(Nombreinterfaz_impl)</function +> para insertar las implementaciones de los objetos en el sistema de objetos de &MCOP;. </para> + +</sect1> + +<sect1 id="codecs"> +<title +>Códecs - decodificación de datos</title> + +<para +>Los interfaces de kmedia2 permiten ignorar que los archivos wav, mp3 y otros se construyen a base de transmisiones de datos. En vez de eso, se implementan métodos para reproducirlos. </para> + +<para +>Por lo tanto, usted puede escribir una rutina de carga de ondas de forma que se puedan reproducir los archivos de ondas (como PlayObject), pero nadie más puede utilizar su código. </para> + +<para +>Las transmisiones asíncronas pueden ser una alternativa. Se define un interfaz que permite introducir y sacar bloques de datos. Se parece a la de &MCOP;: </para> + +<programlisting +>interface Codec { + entrada async byte stream indata; + salida async byte stream outdata; +}; +</programlisting> + + +<para +>Por supuesto los códecs también proporcionan atributos para emitir datos adicionales, como información sobre el formato. </para> + +<programlisting +>interface CodificadorAudioByte { + entrada async byte stream indata; + salida async byte stream outdata; + readonly attribute ratioMuestra, bits, canales; +}; +</programlisting> + +<para +>Este <interfacename +>CodificadorAudioByte</interfacename +>, por ejemplo, puede conectarse a un objeto <interfacename +>ByteStreamToAudio</interfacename +>, para hacer audio real en coma flotante. </para> + +<para +>Por supuesto, otros tipos de códecs podrían incorporar la emisión directa de información de vídeo, como </para> + +<programlisting +>interface VideoCodec { + entrada async byte stream indata; + salida video stream outdata; /* nota: las transmisiones de vídeo aún no existen */ +}; +</programlisting> + +<para +>En la mayoría de los casos, se debería emplear el concepto de un códec más que el método «tu sabes hacerlo funcionar y yo no» que ahora utiliza, por ejemplo, <interfacename +>WavPlayObject</interfacename +>. Sin embargo, alguien debería ponerse a experimentar un poco antes de que se pueda dar por finalizada la <acronym +>API</acronym +>. </para> + +</sect1> + +<sect1 id="video"> +<title +>Vídeo</title> + +<para +>Mi idea es proporcionar el vídeo como transmisiones asíncronas de algún tipo de datos nativo de &MCOP; que contenga imágenes. Este tipo de datos aún no está creado. Al hacerlo así, los conectores que tratan con las imágenes de vídeo pueden establecer enlaces de la misma manera que lo hacen los conectores de audio. </para> + +<para +>Estas son algunas de las cosas que no se deben olvidar: </para> + +<itemizedlist> +<listitem> +<para +>Hay espacios de color <acronym +>RGB</acronym +> y <acronym +>YUV</acronym +>. </para> +</listitem> +<listitem> +<para +>El formato debería estar de algún modo unido al flujo. </para> +</listitem> +<listitem> +<para +>La sincronización es importante. </para> +</listitem> +</itemizedlist> + +<para +>Mi idea es permitir la posibilidad de volver a implementar la clase <classname +>VideoFrame</classname +> (imagen de vídeo) de forma que pueda almacenar información en un segmento de memoria compartida. De esa manera, serían posibles incluso las transmisiones de vídeo entre distintos procesos sin mucha dificultad. </para> + +<para +>Sin embargo, la situación normal del vídeo es que las cosas estén en el mismo proceso, desde la decodificación hasta el dibujado. </para> + +<para +>He hecho un prototipo de una implementación de transmisiones de vídeo, que se puede descargar <ulink url="http://space.twc.de/~stefan/kde/download/video-quickdraw.tar.gz" +>aquí</ulink +>. Esto se deberá integrar en &MCOP; después de algunos experimentos. </para> + +<para +>Se debería proporcionar un componente del procesado que soporte XMITSHM (con <acronym +>RGB</acronym +> y <acronym +>YUV</acronym +>), Martin Vogt me ha dicho que está trabajando en algo de ese tipo. </para> + +</sect1> + +<sect1 id="threading"> +<title +>Hilos</title> + +<para +>En la actualidad, &MCOP; funciona en un solo hilo. Seguramente ésto no se podrá seguir manteniendo para el vídeo. De acuerdo. Estas son algunas de las cosas que hay que abordar con cuidado: </para> + + +<itemizedlist> +<listitem +><para +>SmartWrappers. No son seguros para multihilo debido al contador de referencias no seguro y otras cosas similares. </para> +</listitem> +<listitem> +<para +>Dispatcher / E/S. Tampoco es seguro. </para> +</listitem> +</itemizedlist> + +<para +>Sin embargo, lo que imagino es que habrá que hacer algunos módulos seguros en multihilo, tanto en transmisiones síncronas como asíncronas. De esa manera, con un sistema de flujo multihilo, se puede planificar la transmisión de señal sobre dos o más procesadores. Esto también ayudaría mucho al audio en los entornos multiprocesador. </para> + +<para +>Cómo funcionaría: </para> + + +<itemizedlist> +<listitem> +<para +>El sistema de transmisión decide qué módulos deberían calcular qué, así: </para> + <itemizedlist> + <listitem +><para +>Fotogramas de vídeo (con el método process_indata).</para +></listitem> + <listitem +><para +>Transmisiones de audio síncronas (calculateBlock).</para +></listitem> + <listitem +><para +>Otros transmisiones asíncronas, sobre todo transmisiones de bytes.</para +></listitem> + </itemizedlist> +</listitem> +<listitem> +<para +>Los módulos pueden calcular estas cosas en sus propios hilos. Para el audio, tiene sentido reutilizar los hilos (⪚, crear cuatro hilos para cuatro procesadores, independientemente de si están funcionando 100 módulos). Para el vídeo y la descompresión de bytes, puede ser más cómodo tener una implementación con bloqueos en un hilo propia, lo que se sincroniza con el resto de &MCOP; a través del sistema de transmisión. </para> +</listitem> + +<listitem> +<para +>Los módulos pueden no utilizar funcionalidad de &MCOP; (como las llamadas remotas) durante las operaciones multihilo. </para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="synchronization"> +<title +>Sincronización</title> + +<para +>El vídeo y el &MIDI; (y el audio) requieren sincronización. Básicamente ésto viene determinado por unos códigos de tiempo. La idea que tengo es conectar los códigos de tiempo con transmisión asíncrona, añadiendo un código de tiempo en cada paquete. Si envía dos fotogramas de vídeo, hágalo en dos paquetes (serán grandes de todas formas), para que pueda tener dos códigos de tiempo diferentes. </para> + +<para +>El audio tienen códigos de tiempo implícitos, ya que es síncrono. </para> + +</sect1> + +<sect1 id="dynamic-composition"> +<title +>Composición dinámica</title> + +<para +>Debería ser posible decir: un efecto especial se componen de estos módulos más sencillos. Los efectos especiales deberían tener el aspecto de un módulo &MCOP; normal (véase el enmascaramiento), pero de hecho constar de otros módulos. </para> + +<para +>Esto es lo que hace falta en &arts-builder;. </para> + +</sect1> + +<sect1 id="gui"> +<title +>&GUI;</title> + +<para +>Todos los componentes del &GUI; serán módulos &MCOP;. Deberían de tener atributos como size (tamaño), label (etiqueta), color, etc. Un constructor <acronym +>RAD</acronym +> (&arts-builder;) debería ser capaz de componerlos visualmente. </para> + +<para +>El &GUI; debería ser almacenable, mediante el almacenamiento de los atributos. </para> + +</sect1> + +<sect1 id="midi-stuff"> +<title +>&MIDI;</title> + +<para +>El &MIDI; se implementará como transmisiones asíncronos. Hay dos opciones, una es utilizar las estructuras normales de &MCOP; para definir los tipos y la otra es introducir otros tipos propios. </para> + +<para +>Creo que las estructuras normales deberían bastar, algo como: </para> + +<programlisting +>struct EventoMidi { + byte b1,b2,b3; + sequence<byte> existe; +} +</programlisting> + +<para +>Las transmisiones asíncronas deberían soportar tipos de transmisión propios. </para> + +</sect1> + +</chapter> + + diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/glossary.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/glossary.docbook new file mode 100644 index 00000000000..5d87960ba9f --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/glossary.docbook @@ -0,0 +1,173 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE glossary PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<glossary id="glossary"> + +<glossentry id="gloss-alsa"> +<glossterm +><acronym +>ALSA</acronym +></glossterm> +<glossdef> +<para +>Arquitectura de sonido avanzada para &Linux;. Un controlador de tarjetas de sonido para &Linux;. No está incluído en el código fuente del núcleo estándar. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-arts"> +<glossterm +>&arts;</glossterm> +<glossdef> +<para +>Sintetizador analógico de tiempo real. Es el nombre de la arquitectura/biblioteca/herramienta multimedia utilizada por el proyecto &kde; (téngase en cuenta el uso de las mayúsculas). </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-bsd"> +<glossterm +><acronym +>BSD</acronym +></glossterm> +<glossdef> +<para +>Distribución de software de Berkeley. Hace referencia a varios sistemas operativos compatibles con &UNIX; derivados del &UNIX; <acronym +>BSD</acronym +>. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-corba"> +<glossterm +><acronym +>CORBA</acronym +></glossterm> +<glossdef> +<para +>Arquitectura de comunicación de petición de objetos comunes. Un estándar para la implementación de ejecución remota orientada a objetos. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-cvs"> +<glossterm +><acronym +>CVS</acronym +></glossterm> +<glossdef> +<para +>Sistema de versiones concurrentes. Un sistema de administración de configuraciones utilizada por muchos proyectos, entre ellos &kde; y &arts;. </para> +</glossdef> +</glossentry> + +<glossentry id="glos-fft"> +<glossterm +><acronym +>FFT</acronym +></glossterm> +<glossdef> +<para +>Transformación rápida de Fourier. Un algoritmo para convertir datos de tiempo a frecuencias. Es muy utilizado en el procesamiento de señal. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-full-duplex"> +<glossterm +>Full Duplex</glossterm> +<glossdef> +<para +>La capacidad de una tarjeta de sonido para reproducir y grabar audio simultáneamente. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-gpl"> +<glossterm +><acronym +>GPL</acronym +></glossterm> +<glossdef> +<para +>Licencia pública general de <acronym +>GNU</acronym +>. Una licencia de software creada por la Fundación del Software Libre que define los términos sobre la distribución del software libre. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-gui"> +<glossterm +>&GUI;</glossterm> +<glossdef> +<para +>Interfaz gráfico de usuario. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-idl"> +<glossterm +><acronym +>IDL</acronym +></glossterm> +<glossdef> +<para +>Lenguaje de definición de interfaz. Un formato de programación independiente del lenguaje para especificar interfaces (métodos y datos). </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-kde"> +<glossterm +>&kde;</glossterm> +<glossdef> +<para +>Entorno de escritorio K. Un proyecto para desarrollar un entorno gráfico de escritorio libre para los sistemas compatibles con &UNIX;. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-lgpl"> +<glossterm +><acronym +>LGPL</acronym +></glossterm> +<glossdef> +<para +>Licencia pública general <acronym +>GNU</acronym +> suavizada. Una licencia de software creada por la Fundación del Software Libre que define los términos sobre la publicación de software libre, menos restrictiva que la <acronym +>GPL</acronym +> y muy utilizada en las bibliotecas de software. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-mcop"> +<glossterm +>&MCOP;</glossterm> +<glossdef> +<para +>Protocolo de comunicación multimedia. El protocolo utilizado para la comunicación entre los módulos de software de &arts;. Similar a <acronym +>CORBA</acronym +> pero más sencillo y optimizado para el multimedia. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-midi"> +<glossterm +>&MIDI;</glossterm> +<glossdef> +<para +>Interfaz digital de instrumentos musicales. Un protocolo estándar para la comunicación entre instrumentos musicales electrónicos, también utilizado para referirse al formato de archivos para el almacenamiento de órdenes &MIDI;. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-oss"> +<glossterm +><acronym +>OSS</acronym +></glossterm> +<glossdef> +<para +>Sistema de sonido abierto. Los controladores de sonido incluídos por el núcleo de &Linux; (a veces llamado <acronym +>OSS</acronym +>/Free) o una versión comercial vendida por 4Front Technologies. </para> +</glossdef> +</glossentry> + +</glossary> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/gui.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/gui.docbook new file mode 100644 index 00000000000..b769c161b6b --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/gui.docbook @@ -0,0 +1,29 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<!-- +<chapter id="gui-elements"> +<title +>&GUI; Elements</title> + +<sect1 id="gui-introduction"> +<title +>Introduction</title> + +</sect1> + +<sect1 id="parents"> +<title +>Parents</title> + +</sect1> + +<sect1 id="mixers"> +<title +>Mixers</title> + +</sect1> +</chapter> +--> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/helping.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/helping.docbook new file mode 100644 index 00000000000..b0f36792ea2 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/helping.docbook @@ -0,0 +1,237 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<chapter id="contributing"> +<title +>Contribuciones a &arts;</title> + +<sect1 id="how-to-help"> +<title +>Cómo puede ayudar</title> + +<para +>El proyecto &arts; admite la ayuda de muchos desarrolladores para hacer que las aplicaciones multimedia existentes le soporten, para escribir nuevas aplicaciones multimedia, y para mejorar el propio &arts;. Sin embargo, no es necesario ser programador para colaborar. También se necesita ayuda de gente que haga pruebas de funcionamiento y envíe informes de fallos, traductores que adapten las aplicaciones y la documentación a otros idiomas, artistas que diseñen dibujos (especialmente para los módulos de <application +>artsbuilder</application +>), músicos que escriban módulos de ejemplo, y escritores que redacten la documentación. </para> +</sect1> + +<sect1 id="mailing-lists"> +<title +>Listas de correo</title> + +<para +>La mayoría de las discusiones sobre el desarrollo de &arts; tienen lugar en dos listas de correo. Es el lugar para tratar nuevas características e ideas de implementaciones o para pedir ayuda ante los problemas. </para> + +<para +>La lista de correo Multimedia de &kde; trata temas generales de multimedia en &kde; así como aplicaciones multimedia como &noatun; y &aktion;. Puede suscribirse desde la página web <ulink url="http://www.kde.org/mailinglists.html" +> http://www.kde.org/mailinglists.html</ulink +> o enviar un correo electrónico con el asunto <userinput +>subscribe <replaceable +>su-dirección-de-correo</replaceable +></userinput +> a <email +>[email protected]</email +>. La lista está guardada en <ulink url="http://lists.kde.org" +> http://lists.kde.org</ulink +>. </para> + +<para +>La lista de correo de &arts; trata temas específicos de &arts;, incluyendo el uso de &arts; externo a &kde;. Para suscribirse, envíe un correo electrónico que contenga en el cuerpo del mensaje <userinput +>subscribe <replaceable +>su-dirección-de-correo</replaceable +></userinput +> a <email +>[email protected]</email +>. La lista está guarda en <ulink url="http://space.twc.de/~stefan/arts-archive" +> http://space.twc.de/~stefan/arts-archive</ulink +>. </para> + +</sect1> + +<sect1 id="coding-standards"> +<title +>Estándares de programación</title> + +<para +>Para conseguir una lectura consistente de los códigos fuente, es importante mantener el mismo estilo de programación en todo el código de &arts;. Por favor, aunque escriba símplemente un módulo, trate de escribir y dar formato a su código fuente de acuerdo al estándar, así será más sencillo que otras personas mantegan esos archivos, y más fácil copiar porciones de un código a otro. </para> + +<variablelist> +<varlistentry> +<term +>Nombres de las funciones miembro</term> +<listitem> +<para +>Estilo &Qt;/&Java;. Eso significa utilizar mayúsculas en los cambios de palabra, la primera letra en minúsculas y sin caracteres de subrayado. </para> +<para +>Esto significa por ejemplo:</para> + +<programlisting +>crearDescripcionEstructura() + actualizarElemento(); + iniciar(); </programlisting> + +</listitem> +</varlistentry> + +<varlistentry> +<term +>Miembros de clases</term> +<listitem> +<para +>Los miembros de clases está en minúsculas, como 'barramenu' o 'boton'. </para> + +<para +>Cuando haya funciones de acceso, el estándar debe ser al estilo de &MCOP;, es decir, cuando haya un miembro largo <function +>foo</function +>, que no debe ser visible directamente, escriba funciones: </para> + +<programlisting +>foo(long nuevo_valor); + long foo(); </programlisting> + +<para +>para leer y establecer el valor. En ese caso, el valor real de <function +>foo</function +> debería quedar almacenado en <returnvalue +>_foo</returnvalue +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Nombres de clases</term> +<listitem> +<para +>Todas las clases deben comenzar con cada palabra en mayúsculas, como en <classname +>ModuloVer</classname +>, <classname +>ModuloSintesis</classname +>. Todas las clases que pertenezca a bibliotecas deben utilizar el espacio de nombres de &arts; como <classname +>Arts::Servidorsonido</classname +>. </para> +<para +>Las implementaciones de las clases &MCOP; deben ser llamadas <classname +>Clase_impl</classname +>, como <classname +>ServidorSonido_impl</classname +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Parámetros</term> +<listitem> +<para +>Los parámetros van siempre en minúsculas. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Variables locales</term> +<listitem> +<para +>La variables locales van siempre en minúsculas, y pueden tener nombres como <varname +>i</varname +>, <varname +>p</varname +>, <varname +>x</varname +>, &etc; según lo apropiado que sea. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Tabulación</term> +<listitem> +<para +>Un tabulador tiene una longitud de 4 espacios. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Espacios en expresiones</term> +<listitem> +<para +>Normalmente no es necesario utilizar espacios en expresiones. Puede, de todas formas, usarlos entre el operador y sus operandos. Sin embargo, si coloca un espacio antes de un operador (p.e. +), será necesario que coloque también uno después del mismo. La única excepción se produce en las expresiones de tipo de lista (con ,), donde sólo se debería poner un espacio después de la «,», pero nunca antes. Además, también es correcto omitir el espacio en este caso. </para> +<para +>Los siguientes ejemplos muestran el uso correcto de los espacios: </para> +<programlisting +>{ + int a,b; + int c, d, e; + int f = 4; + + a=b=c=d+e+f; + a = b = c = d + e + f; + + if(a == 4) { + a = b = c = (d+e)/2; + } + + while(b<3) + c--; + + arts_debug("%d\n", c); +} +</programlisting> +<para +>Los siguientes ejemplos muestras como <emphasis +>no</emphasis +> se deben utilizar los espacios. En las llamadas de función, después de if, while, for, swith y demás, no se debe escribir un espacio. </para> +<programlisting +>{ + // MAL: si escribe una lista, los espacios sólo deben ir después de la "," + int a , b , c , d , e , f; + + // MAL: no se han utilizado los espacios simétricamente con el operador = + a= 5; + + // MAL: if se considera una función y no debe ir seguida por un espacio + if (a == 5) { + } + + // MAL: nunca escriba espacios después de while + while (a--) + b++; + + // MAL: los nombres de funciones no deben ir seguidos por un espacio + arts_debug ("%d\n", c); + + // MAL: tampoco los nombres de los miembros + Arts::Object o = Arts::Object::null (); +} +</programlisting> +</listitem> +</varlistentry> + + +<varlistentry> +<term +>Nombres de los archivos fuente</term> +<listitem> +<para +>Los archivos fuente no deben tener mayúsculas en el nombre. Deben tener el nombre de la clase cuando implementen una sola clase. Su extensión es <literal role="extension" +>.cc</literal +> si se refieren a código independiente de &Qt;/&GUI;, y <literal role="extension" +>.cpp</literal +> si se refieren a código dependiente de &Qt;&GUI;. Los archivos de implementación para las interfaces deben llamarse <filename +><replaceable +>foo</replaceable +>_impl</filename +>, si Foo fuese el nombre del interfaz. </para> + +<para +>Los archivos &IDL; deben llamarse de una forma descriptiva de la colección de interfaces que contienen, también en minúsculas. No es bueno, concretamente, llamar al un archivo &IDL; como la propia clase, puesto que el intercambiador de mcopclass y las entradas de información de tipo colisionarán. </para> +</listitem> +</varlistentry> +</variablelist> +</sect1> + +</chapter> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Makefile.am b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Makefile.am new file mode 100644 index 00000000000..78c8cc225b0 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = artsbuilder/images +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Makefile.in b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Makefile.in new file mode 100644 index 00000000000..37a3f8c2889 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Makefile.in @@ -0,0 +1,613 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia/artsbuilder/images +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = artsbuilder/images +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/images/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/images/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/images/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/images/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/artsbuilder/images/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=Synth_AMAN_PLAY.png Synth_RC.png Synth_SHELVE_CUTOFF.png Synth_MUL.png Synth_ENVELOPE_ADSR.png Synth_PLAY.png Synth_SEQUENCE_FREQ.png Synth_ADD.png Synth_CAPTURE.png Synth_NOISE.png Synth_PSCALE.png Synth_MOOG_VCF.png Synth_BUS_DOWNLINK.png Synth_STD_EQUALIZER.png Synth_PLAY_WAV.png Synth_SEQUENCE.png Synth_MULTI_ADD.png Synth_DEBUG.png Synth_DELAY.png Synth_WAVE_TRI.png Synth_PITCH_SHIFT.png Synth_FX_CFLANGER.png Synth_FREQUENCY.png Synth_DATA.png Synth_CDELAY.png Synth_NIL.png Synth_MIDI_TEST.png Synth_RECORD.png Synth_AMAN_RECORD.png Synth_FM_SOURCE.png Synth_XFADE.png Synth_BRICKWALL_LIMITER.png Synth_WAVE_PULSE.png Synth_COMPRESSOR.png Makefile.in Synth_BUS_UPLINK.png Synth_WAVE_SQUARE.png Synth_MIDI_DEBUG.png Synth_WAVE_SIN.png Synth_DIV.png Synth_FREEVERB.png Synth_TREMOLO.png Makefile.am Synth_WAVE_SOFTSAW.png + +#>+ 2 +docs-am: Synth_FX_CFLANGER.png Synth_BRICKWALL_LIMITER.png Synth_DATA.png Synth_MUL.png Synth_DEBUG.png Synth_WAVE_TRI.png Synth_TREMOLO.png Synth_DIV.png Synth_FREQUENCY.png Synth_WAVE_SIN.png Synth_NIL.png Synth_STD_EQUALIZER.png Synth_BUS_DOWNLINK.png Synth_XFADE.png Synth_WAVE_PULSE.png Synth_BUS_UPLINK.png Synth_RC.png Synth_MIDI_TEST.png Synth_PLAY.png Synth_AMAN_RECORD.png Synth_MULTI_ADD.png Synth_FREEVERB.png Synth_CDELAY.png Synth_AMAN_PLAY.png Synth_COMPRESSOR.png Synth_PITCH_SHIFT.png Synth_WAVE_SQUARE.png Synth_SEQUENCE.png Synth_FM_SOURCE.png Synth_WAVE_SOFTSAW.png Synth_RECORD.png Synth_CAPTURE.png Synth_ENVELOPE_ADSR.png Synth_MOOG_VCF.png Synth_NOISE.png Synth_ADD.png Synth_DELAY.png Synth_PLAY_WAV.png Synth_SEQUENCE_FREQ.png Synth_PSCALE.png Synth_SHELVE_CUTOFF.png Synth_MIDI_DEBUG.png + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/images + @for base in Synth_FX_CFLANGER.png Synth_BRICKWALL_LIMITER.png Synth_DATA.png Synth_MUL.png Synth_DEBUG.png Synth_WAVE_TRI.png Synth_TREMOLO.png Synth_DIV.png Synth_FREQUENCY.png Synth_WAVE_SIN.png Synth_NIL.png Synth_STD_EQUALIZER.png Synth_BUS_DOWNLINK.png Synth_XFADE.png Synth_WAVE_PULSE.png Synth_BUS_UPLINK.png Synth_RC.png Synth_MIDI_TEST.png Synth_PLAY.png Synth_AMAN_RECORD.png Synth_MULTI_ADD.png Synth_FREEVERB.png Synth_CDELAY.png Synth_AMAN_PLAY.png Synth_COMPRESSOR.png Synth_PITCH_SHIFT.png Synth_WAVE_SQUARE.png Synth_SEQUENCE.png Synth_FM_SOURCE.png Synth_WAVE_SOFTSAW.png Synth_RECORD.png Synth_CAPTURE.png Synth_ENVELOPE_ADSR.png Synth_MOOG_VCF.png Synth_NOISE.png Synth_ADD.png Synth_DELAY.png Synth_PLAY_WAV.png Synth_SEQUENCE_FREQ.png Synth_PSCALE.png Synth_SHELVE_CUTOFF.png Synth_MIDI_DEBUG.png ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/images/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/images/$$base ;\ + done + +uninstall-nls: + for base in Synth_FX_CFLANGER.png Synth_BRICKWALL_LIMITER.png Synth_DATA.png Synth_MUL.png Synth_DEBUG.png Synth_WAVE_TRI.png Synth_TREMOLO.png Synth_DIV.png Synth_FREQUENCY.png Synth_WAVE_SIN.png Synth_NIL.png Synth_STD_EQUALIZER.png Synth_BUS_DOWNLINK.png Synth_XFADE.png Synth_WAVE_PULSE.png Synth_BUS_UPLINK.png Synth_RC.png Synth_MIDI_TEST.png Synth_PLAY.png Synth_AMAN_RECORD.png Synth_MULTI_ADD.png Synth_FREEVERB.png Synth_CDELAY.png Synth_AMAN_PLAY.png Synth_COMPRESSOR.png Synth_PITCH_SHIFT.png Synth_WAVE_SQUARE.png Synth_SEQUENCE.png Synth_FM_SOURCE.png Synth_WAVE_SOFTSAW.png Synth_RECORD.png Synth_CAPTURE.png Synth_ENVELOPE_ADSR.png Synth_MOOG_VCF.png Synth_NOISE.png Synth_ADD.png Synth_DELAY.png Synth_PLAY_WAV.png Synth_SEQUENCE_FREQ.png Synth_PSCALE.png Synth_SHELVE_CUTOFF.png Synth_MIDI_DEBUG.png ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/artsbuilder/images/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in Synth_FX_CFLANGER.png Synth_BRICKWALL_LIMITER.png Synth_DATA.png Synth_MUL.png Synth_DEBUG.png Synth_WAVE_TRI.png Synth_TREMOLO.png Synth_DIV.png Synth_FREQUENCY.png Synth_WAVE_SIN.png Synth_NIL.png Synth_STD_EQUALIZER.png Synth_BUS_DOWNLINK.png Synth_XFADE.png Synth_WAVE_PULSE.png Synth_BUS_UPLINK.png Synth_RC.png Synth_MIDI_TEST.png Synth_PLAY.png Synth_AMAN_RECORD.png Synth_MULTI_ADD.png Synth_FREEVERB.png Synth_CDELAY.png Synth_AMAN_PLAY.png Synth_COMPRESSOR.png Synth_PITCH_SHIFT.png Synth_WAVE_SQUARE.png Synth_SEQUENCE.png Synth_FM_SOURCE.png Synth_WAVE_SOFTSAW.png Synth_RECORD.png Synth_CAPTURE.png Synth_ENVELOPE_ADSR.png Synth_MOOG_VCF.png Synth_NOISE.png Synth_ADD.png Synth_DELAY.png Synth_PLAY_WAV.png Synth_SEQUENCE_FREQ.png Synth_PSCALE.png Synth_SHELVE_CUTOFF.png Synth_MIDI_DEBUG.png ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/images/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/artsbuilder/images/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/artsbuilder/images/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_ADD.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_ADD.png Binary files differnew file mode 100644 index 00000000000..e06e47a0521 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_ADD.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_AMAN_PLAY.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_AMAN_PLAY.png Binary files differnew file mode 100644 index 00000000000..908f6c0563d --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_AMAN_PLAY.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_AMAN_RECORD.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_AMAN_RECORD.png Binary files differnew file mode 100644 index 00000000000..ee9e799b2c8 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_AMAN_RECORD.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_BRICKWALL_LIMITER.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_BRICKWALL_LIMITER.png Binary files differnew file mode 100644 index 00000000000..ba21cbc9f18 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_BRICKWALL_LIMITER.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_BUS_DOWNLINK.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_BUS_DOWNLINK.png Binary files differnew file mode 100644 index 00000000000..a2ad7c93f3d --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_BUS_DOWNLINK.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_BUS_UPLINK.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_BUS_UPLINK.png Binary files differnew file mode 100644 index 00000000000..3253ce6988c --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_BUS_UPLINK.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_CAPTURE.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_CAPTURE.png Binary files differnew file mode 100644 index 00000000000..38d52d59fb9 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_CAPTURE.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_CDELAY.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_CDELAY.png Binary files differnew file mode 100644 index 00000000000..6ddb4870a5b --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_CDELAY.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_COMPRESSOR.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_COMPRESSOR.png Binary files differnew file mode 100644 index 00000000000..a86ffd11084 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_COMPRESSOR.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DATA.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DATA.png Binary files differnew file mode 100644 index 00000000000..862388cfaeb --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DATA.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DEBUG.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DEBUG.png Binary files differnew file mode 100644 index 00000000000..9cc4357f567 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DEBUG.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DELAY.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DELAY.png Binary files differnew file mode 100644 index 00000000000..3bd53b34673 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DELAY.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DIV.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DIV.png Binary files differnew file mode 100644 index 00000000000..5b811cdda65 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_DIV.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_ENVELOPE_ADSR.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_ENVELOPE_ADSR.png Binary files differnew file mode 100644 index 00000000000..937e9468ac7 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_ENVELOPE_ADSR.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FM_SOURCE.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FM_SOURCE.png Binary files differnew file mode 100644 index 00000000000..9554d41aa25 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FM_SOURCE.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FREEVERB.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FREEVERB.png Binary files differnew file mode 100644 index 00000000000..1b1b8820033 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FREEVERB.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FREQUENCY.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FREQUENCY.png Binary files differnew file mode 100644 index 00000000000..354eda36826 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FREQUENCY.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FX_CFLANGER.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FX_CFLANGER.png Binary files differnew file mode 100644 index 00000000000..077539fe3d5 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_FX_CFLANGER.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MIDI_DEBUG.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MIDI_DEBUG.png Binary files differnew file mode 100644 index 00000000000..30c18efa5d8 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MIDI_DEBUG.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MIDI_TEST.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MIDI_TEST.png Binary files differnew file mode 100644 index 00000000000..bd77d01587e --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MIDI_TEST.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MOOG_VCF.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MOOG_VCF.png Binary files differnew file mode 100644 index 00000000000..55b48aaf222 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MOOG_VCF.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MUL.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MUL.png Binary files differnew file mode 100644 index 00000000000..0c98e4c82c9 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MUL.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MULTI_ADD.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MULTI_ADD.png Binary files differnew file mode 100644 index 00000000000..a0ba2f1dfa2 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_MULTI_ADD.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_NIL.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_NIL.png Binary files differnew file mode 100644 index 00000000000..ca5de0768e8 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_NIL.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_NOISE.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_NOISE.png Binary files differnew file mode 100644 index 00000000000..97ab005cd93 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_NOISE.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PITCH_SHIFT.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PITCH_SHIFT.png Binary files differnew file mode 100644 index 00000000000..5b2b57a158e --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PITCH_SHIFT.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PLAY.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PLAY.png Binary files differnew file mode 100644 index 00000000000..7f318b78e59 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PLAY.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PLAY_WAV.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PLAY_WAV.png Binary files differnew file mode 100644 index 00000000000..73c2c674ee3 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PLAY_WAV.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PSCALE.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PSCALE.png Binary files differnew file mode 100644 index 00000000000..56e645b9d55 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_PSCALE.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_RC.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_RC.png Binary files differnew file mode 100644 index 00000000000..45dd3765af7 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_RC.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_RECORD.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_RECORD.png Binary files differnew file mode 100644 index 00000000000..d8e6a6ca7a5 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_RECORD.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_SEQUENCE.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_SEQUENCE.png Binary files differnew file mode 100644 index 00000000000..25594c288f5 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_SEQUENCE.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_SEQUENCE_FREQ.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_SEQUENCE_FREQ.png Binary files differnew file mode 100644 index 00000000000..58efaaa67e6 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_SEQUENCE_FREQ.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_SHELVE_CUTOFF.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_SHELVE_CUTOFF.png Binary files differnew file mode 100644 index 00000000000..cebd4bdc175 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_SHELVE_CUTOFF.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_STD_EQUALIZER.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_STD_EQUALIZER.png Binary files differnew file mode 100644 index 00000000000..6ae1a558e34 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_STD_EQUALIZER.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_TREMOLO.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_TREMOLO.png Binary files differnew file mode 100644 index 00000000000..917759c09ca --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_TREMOLO.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_PULSE.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_PULSE.png Binary files differnew file mode 100644 index 00000000000..b67d88e0c58 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_PULSE.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_SIN.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_SIN.png Binary files differnew file mode 100644 index 00000000000..6d26eab6ab6 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_SIN.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_SOFTSAW.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_SOFTSAW.png Binary files differnew file mode 100644 index 00000000000..2e697c4998e --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_SOFTSAW.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_SQUARE.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_SQUARE.png Binary files differnew file mode 100644 index 00000000000..ba99e85c0dd --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_SQUARE.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_TRI.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_TRI.png Binary files differnew file mode 100644 index 00000000000..62083f4014a --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_WAVE_TRI.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_XFADE.png b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_XFADE.png Binary files differnew file mode 100644 index 00000000000..90498689710 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/images/Synth_XFADE.png diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/index.cache.bz2 b/tde-i18n-es/docs/tdemultimedia/artsbuilder/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..5b6e019d64b --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/index.cache.bz2 diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/index.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/index.docbook new file mode 100644 index 00000000000..6464bca0192 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/index.docbook @@ -0,0 +1,449 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&arts;"> + <!ENTITY tools SYSTEM "tools.docbook"> + <!ENTITY artsbuilder-doc SYSTEM "artsbuilder.docbook" +> + <!ENTITY detail SYSTEM "detail.docbook"> + <!ENTITY arts-midi SYSTEM "midi.docbook"> + <!ENTITY gui SYSTEM "gui.docbook"> + <!ENTITY mcop-ref SYSTEM "mcop.docbook"> + <!ENTITY arts-mcop SYSTEM "mcop.docbook"> + <!ENTITY apis SYSTEM "apis.docbook"> + <!ENTITY modules SYSTEM "modules.docbook"> + <!ENTITY porting SYSTEM "porting.docbook"> + <!ENTITY helping SYSTEM "helping.docbook"> + <!ENTITY future SYSTEM "future.docbook"> + <!ENTITY references SYSTEM "references.docbook"> + <!ENTITY arts-faq SYSTEM "faq.docbook"> + <!ENTITY arts-glossary SYSTEM "glossary.docbook"> + <!ENTITY digitalaudio SYSTEM "digitalaudio.docbook"> + <!ENTITY midiintro SYSTEM "midiintro.docbook"> + <!ENTITY MCOP "<acronym +>MCOP</acronym +>"> + <!ENTITY DCOP "<acronym +>DCOP</acronym +>"> + <!ENTITY MIDI "<acronym +>MIDI</acronym +>"> + <!ENTITY mcopidl "<application +>mcopidl</application +>"> + <!ENTITY IDL "<acronym +>IDL</acronym +>"> + <!ENTITY % Spanish "INCLUDE" +> <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> +<bookinfo> +<title +>El manual de &arts;</title> +<authorgroup> + +<author +><firstname +>Stefan</firstname +> <surname +>Westerfeld</surname +> <affiliation +> <address +><email +>[email protected]</email +></address> +</affiliation> +</author> + +<author +><firstname +>Jeff</firstname +> <surname +>Tranter</surname +> <affiliation +> <address +><email +>[email protected]</email +></address> +</affiliation> +</author> + +<othercredit role="translator" +><firstname +>Salvador</firstname +><surname +>Gimeno Zanón</surname +><affiliation +><address +><email +>[email protected]</email +></address +></affiliation +><contrib +>Traductor</contrib +></othercredit +> <othercredit role="translator" +> <firstname +>Miguel</firstname +> <surname +>Revilla Rodríguez</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +></othercredit +> <othercredit role="translator" +> <firstname +>Alejandro</firstname +> <surname +>Exojo Piqueras</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +></othercredit +> +</authorgroup> + +<copyright> +<year +>1999-2001</year> +<holder +>Stefan Westerfeld y Jeff Tranter</holder> +</copyright> +<legalnotice +>&FDLNotice;</legalnotice> + +<date +>2001-06-10</date> +<releaseinfo +>1.00.09</releaseinfo> + +<abstract +><para +>Este manual describe &arts;, el Sintetizador Analógico en Tiempo Real.</para> + +</abstract> + +<keywordset> +<keyword +>aRts</keyword> +<keyword +>artsbuilder</keyword> +<keyword +>sintetizador</keyword> +<keyword +>multimedia</keyword> +<keyword +>estructura</keyword> +<keyword +>música</keyword> +<keyword +>sonido</keyword> +<keyword +>KDE</keyword> +</keywordset> +</bookinfo> + +<chapter id="introduction"> +<title +>Introducción</title> + +<sect1 id="what-is-arts"> +<title +>¿Qué es &arts;?</title> + +<para +>El sintetizador analógico en tiempo real, o &arts; (Analog Real-Time Synthesizer), es un sistema modular para sintetizar audio y música en ordenadores digitales. Utilizando unos pequeños bloques de construcción, llamados módulos, el usuario puede construir fácilmente complejas herramientas de procesado de audio. Los módulos proporcionan normalmente funciones tales como la generación de formas de onda de sonido, filtros, efectos de audio, mezclas, y la reproducción de audio digital en distintos formatos de archivo.</para> + +<para +>El servidor de sonido &artsd; mezcla el audio de distintas fuentes en tiempo real, permitiendo que múltiples aplicaciones de sonido compartan el acceso al hardware de audio de forma transparente.</para> + +<para +>Al utilizar &MCOP;, el Protocolo de Comunicaciones Multimedia, las aplicaciones multimedia pueden ser transparentes a la red, se pueden autentificar por seguridad, y pueden ser multiplataforma al utilizar interfaces definidos de forma independiente del lenguaje mediante el uso de &IDL;. También se provee de soporte para aplicaciones antiguas que no utilicen &arts;. Al ser uno de los componentes centrales del entorno de escritorio &kde; 2, &arts; ofrece las bases de la arquitectura multimedia de &kde; y en el futuro soportará más tipos de medios, incluyendo vídeo. Como &kde;, &arts; funciona sobre distintos sistemas operativos, incluyendo &Linux; y variantes de BSD. También puede utilizarse sin &kde;.</para> + +</sect1> + +<sect1 id="using-this-manual"> +<title +>Uso de este manual</title> + +<para +>Este manual pretende ofrecer una documentación comprensible sobre &arts; para usuarios con distintos niveles de conocimiento. Dependiendo de si usted es alguien que utiliza aplicaciones multimedia basadas en &arts; de vez en cuando, o de si es un desarrollador de aplicaciones multimedia, es posible que desee seguir caminos distintos a lo largo del manual.</para> + +<para +>Le recomendamos que primero lea el capitulo <link linkend="installation" +>Descargando y construyendo &arts;</link +> si necesita instalar y ejecutar &arts; por primera vez. Si ya tiene un sistema en funcionamiento, probablemente incluido con la distribución de su sistema operativo, puede optar por saltar esta sección.</para> + +<para +>Después debería leer las secciones del capítulo <link linkend="arts-tools" +>Herramientas &arts;</link +>, en especial &artsd;, &artscontrol;, &artsshell; y &artsdsp;. Esto le permitirá sacar el máximo provecho de &arts;.</para> + +<para +>Si está interesado en llegar más lejos con &arts;, lea el capítulo sobre <link linkend="artsbuilder" +>&arts-builder;</link +> y realice el tutorial. Esto le mostrará las grandes capacidades de &arts; y de los módulos incluídos que pueden ser utilizados sin ser un programador.</para> + +<para +>Si desea saber más sobre las interioridades de &arts;, bien para desarrollar aplicaciones multimedia, bien para mejorar el propio &arts;, lea todo o parte del capítulo <link linkend="arts-in-detail" +>&arts; al detalle</link +>. Le permitirá entender todos los conceptos que son necesarios para el desarrollo de software con &arts;.</para> + +<para +>Si está específicamente interesado en las capacidades <acronym +>MIDI</acronym +> de &arts;, debería leer el capítulo sobre <link linkend="midi" +>&MIDI;</link +>.</para> + +<!-- TODO +<para +>To learn more about the &arts; graphical elements, either as an advanced +user of artsbuilder or to create new elements, read the section on <link +linkend="gui-elements" +><acronym +>GUI</acronym +> Elements</link +>.</para> +--> + +<para +>Si desea desarrollar aplicaciones multimedia que aprovechen &arts;, el capítulo <link linkend="arts-apis" +>API de &arts;</link +> trata en detalle las distintas <acronym +>API</acronym +>s.</para> + +<para +>Si desea ampliar &arts; desarrollando nuevos módulos, lea el capítulo <link linkend="arts-modules" +>Módulos &arts;</link +>.</para> + +<para +>Si está modificando una aplicación existente para que funcione con &arts;, lea el capítulo <link linkend="porting" +>Portando aplicaciones a &arts;</link +>.</para> + +<para +>Puede descubrir como colaborar con el proyecto &arts; en el capítulo <link linkend="contributing" +>Contribuyendo con &arts;</link +>, lea sobre el futuro desarrollo de &arts; en el capítulo <link linkend="future-work" +>Trabajo futuro</link +>, y encuentre enlaces a más información en la sección <link linkend="references" +>Referencias</link +>.</para> + +<para +>Hemos acabado de redondear el manual con algo de información adicional, incluyendo <link linkend="faq" +>respuestas a preguntas frecuentes</link +>, una <link linkend="contributors" +>lista con los colaboradores</link +>, los detalles del <link linkend="copyright-and-licenses" +>derechos de autor y la licencia</link +> de &arts;, y algo de información de referencia sobre <link linkend="intro-digital-audio" +>audio digital</link +> y <link linkend="midi-introduction" +>&MIDI;</link +>. También se ha incluído un <link linkend="glossary" +>glosario</link +>.</para> + +<note> +<para +>Este manual aun es un trabajo sin finalizar. Le invitamos a que colabore escribiendo parte de él, aunque si desea hacerlo, contacte primero con Jeff Tranter <email +>[email protected]</email +> o Stefan Westerfeld <email +>[email protected]</email +> para evitar la duplicidad de esfuerzos. </para> +</note> + +</sect1> + +<sect1 id="history"> +<title +>Historia</title> + +<para +>A finales de 1997 Stefan Westerfeld empezó a trabajar en un sistema modular, en tiempo real, para la síntesis de sonido. El código funcionaba inicialmente en un sistema PowerPC que ejecutaba &AIX;. Esta primera implementación era bastante simple, pero soportaba un sistema de flujo completo que era capaz, entre otras cosas, de reproducir archivos MP3 y transmisión de audio a través de módulos de efectos. </para> + + +<para +>El siguiente paso fue implementar una interfaz de usuario (&GUI;) para que los módulos pudieran manipularse de forma gráfica. Stefan tenía algo de experiencia en el uso de &kde;, por lo que fue elegido como la herramienta para la &GUI;, (sabiendo que podría ser también necesario hacer una versión Gnome/Gtk+) y esto llevó a que posteriormente se utilizara &Linux; como principal plataforma de desarrollo. Inicialmente llamado <application +>ksynth</application +>, el proyecto se renombró como &arts; y el ritmo de desarrollo aumentó. En esos momentos el proyecto estaba bastante completo, con un protocolo basado en <acronym +>CORBA</acronym +>, docenas de módulos, un editor gráfico de módulos, <acronym +>API</acronym +>s para C y C++, documentación, utilidades, una lista de distribución y una página web con un pequeño grupo de desarrolladores. El proyecto había recorrido un largo camino en poco más de un año de desarrollo.</para> + +<para +>Mientras el equipo de &kde; empezaba a planear &kde; 2.0, se hizo claro que &kde; necesitaba una infraestructura más potente de sonido y de medios en tiempo real. Se decidió adaptar &arts;, puesto que era un buen paso en esta dirección con una arquitectura probada. Un nuevo y mayor esfuerzo de desarrollo fue empleado en esta nueva versión de &arts;, siendo destacable el reemplazo del código <acronym +>CORBA</acronym +> con un nuevo subsistema, &MCOP;, optimizado para multimedia. La versión 0.4 de &arts; fue incluída en la versión 2.0 de &kde;.</para> + +<para +>El trabajo en &arts; continúa, mejorando el rendimiento y añadiendo nuevas funcionalidades. Es de destacar que aunque ahora &arts; es parte central de &kde;, puede utilizarse sin &kde;, y también es utilizado por aplicaciones que van más allá de la multimedia tradicional. El proyecto ha atraído algo de interés por parte del equipo de GNOME, abriendo la posibilidad de que tal vez algún día se convierta en la arquitectura multimedia estándar de los sistemas de escritorio &UNIX;.</para> + +</sect1> + +</chapter> + +&tools; +&artsbuilder-doc; +&detail; +&arts-midi; +&gui; +&mcop-ref; +&apis; +&modules; +&porting; +&helping; +&future; +&references; +&arts-faq; + +<chapter id="copyright-and-licenses"> + +<title +>Derechos de autor y licencia de &arts;</title> + +<para +>Derechos de autor del software &arts;. 1998-2001. Stefan Westerfeld <email +>[email protected]</email +>.</para> + +<para +><anchor id="contributors"/> Derechos de autor de la documentación. 1999-2001. Stefan Westerfeld <email +>[email protected]</email +> y Jeff Tranter <email +>[email protected]</email +>. </para> +<para +>Traducido por Salvador Gimeno Zanón <email +>[email protected]</email +>, Miguel Revilla Rodríguez <email +>[email protected]</email +> y Santiago Fernández Sancho <email +>[email protected]</email +>.</para +> +&underFDL; <para +>Todas las bibliotecas incluídas con &arts; tienen una licencia bajo los términos de la <acronym +>GNU</acronym +> Lesser General Public license. La mayor parte del código de &arts; se encuentra en las bibliotecas, incluyendo todo el <acronym +>MCOP</acronym +> y ArtsFlow. Esto permite que las bibliotecas sean utilizadas con aplicaciones que no sean gratuitas/libres si así se desea. </para> + +<para +>Hay algunos programas (como por ejemplo <application +>artsd</application +>), que son entregados bajo los términos de la <acronym +>GNU</acronym +> General Public License. Como hay diferentes opiniones sobre si enlazar programas <acronym +>GPL</acronym +> con &Qt; es legal, también se ha añadido una nota explicita que indica que, además de la <acronym +>GPL</acronym +>: también se da permiso para enlazar el programa con la biblioteca &Qt;, tratando &Qt; como una biblioteca que normalmente acompaña al núcleo del sistema, sea o no sea ese el caso.</para> + +</chapter> + +<appendix id="installation"> +<title +>Instalando &arts;</title> + +<para +>Para utilizar &arts; necesitará, obviamente, tenerlo instalado y en ejecución en su sistema. Hay dos formas de conseguir esto, que se describen en las siguientes secciones. </para> + +<sect1 id="binary-install"> +<title +>Instalando una distribución binaria precompilada</title> + +<para +>La forma más rápida y fácil de conseguir que &arts; se instale y funcione es instalar paquetes binarios precompilados para su sistema. La mayoría de distribuciones de &Linux; modernas incluyen &kde;, y si es &kde; 2.0 o superior incluirá &arts;. Si &kde; no va incluído con los discos de instalación puede que esté disponible para descargar desde el vendedor de su sistema operativo. También puede que esté disponible desde terceros. Asegúrese de utilizar paquetes que coincidan con la versión de su sistema operativo. </para> + +<para +>Una instalación básica de &kde; incluirá el servidor de sonido, permitiendo que la mayoría de aplicaciones reproduzcan audio. Si desea tener el conjunto completo de aplicaciones y herramientas multimedia, lo más probable es que necesite instalar más paquetes opcionales. </para> + +<para +>La desventaja de utilizar binarios precompilados es que puede que no sean de la versión más moderna de &arts;. Esto es particularmente probable si se incluyen en &CD-ROM;, ya que el ritmo de desarrollo de &arts; y &kde; es tan rápido que normalmente los medios en &CD-ROM; no son capaces de seguir el ritmo. También puede encontrarse con que, si tiene una de las arquitecturas o sistemas operativos menos comunes, no existan binarios precompilados y necesite utilizar el segundo método. </para> + +</sect1> + +<sect1 id="source-install"> +<title +>Construyendo desde los fuentes</title> + +<para +>Aunque necesite más tiempo, la forma más flexible de construir &arts; es compilarlo uno mismo desde los fuentes. Ésto le asegura que tiene una versión optimizada para la configuración de su sistema y le permite tener la versión más reciente. </para> + +<para +>Tiene dos opciones, puede instalar la versión estable más reciente incluída con &kde; o puede obtener la versión más reciente (pero posiblemente inestable) directamente desde el repositorio de <acronym +>CVS</acronym +> del proyecto &kde;. La mayoría de usuarios que no estén desarrollando para &arts; deberían utilizar la versión estable. Puede descargarla desde <ulink url="ftp://ftp.kde.org" +>ftp://ftp.kde.org</ulink +> o desde uno de los múltiples espejos del servidor. Si está colaborando en el desarrollo de &arts; lo más probable es que desee utilizar la versión del <acronym +>CVS</acronym +>. Si desea utilizar aRts sin KDE, puede descargar una captura de la versión de desarrollo sin KDE desde <ulink url="http://space.twc.de/~stefan/kde/arts-snapshot-doc.html" +> http://space.twc.de/~stefan/kde/arts-snapshot-doc.html</ulink +>. </para> + +<para +>Recuerde que si está compilando desde el <acronym +>CVS</acronym +>, algunos de los componentes de &arts; (por ⪚ los componentes básicos del núcleo, incluyendo el servidor de sonido) se encuentran en el módulo tdelibs del <acronym +>CVS</acronym +>, mientras que otros componentes adicionales (como por ⪚ <application +>artsbuilder</application +>) se incluyen en tdemultimedia. Esto puede cambiar en el futuro. También puede encontrar una versión en el módulo kmusic. Es una versión antigua (anterior a &kde; 2.0) que se ha quedado obsoleta. </para> + +<para +>Los requerimientos para construir &arts; son esencialmente los mismos que para construir &kde;. Los archivos configure se encargarán de detectar la configuración de su sistema y le informarán de si falta algún componente. Asegúrese de tener un controlador de sonido que funcione en su sistema (ya sea el controlador del núcleo <acronym +>OSS</acronym +>/Free, el controlador <acronym +>OSS</acronym +> de 4Front Technologies, o el controlador <acronym +>ALSA</acronym +> con emulación <acronym +>OSS</acronym +>). </para> + +<para +>Puede encontrar más información sobre descargar e instalar &kde; (incluyendo &arts;) en las <ulink url="http://www.kde.org/documentation/faq/index.html" +>&FAQ; de &kde;</ulink +>.</para> + +</sect1> + +</appendix> + +&digitalaudio; +&midiintro; +&arts-glossary; + +</book> +<!-- +Local Variables: +mode: sgml +sgml-omittag:nil +sgml-shorttag:t +sgml-namecase-general:t +sgml-general-insert-case:lower +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:0 +sgml-indent-data:nil +End: +--> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/mcop.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/mcop.docbook new file mode 100644 index 00000000000..cb501600c6c --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/mcop.docbook @@ -0,0 +1,1872 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<chapter id="mcop"> +<title +>&MCOP;: modelo de objetos y transmisión</title> + +<sect1 id="mcop-overview"> + +<title +>Introducción</title> + +<para +>&MCOP; es el estándar que utiliza &arts; para: </para> + +<itemizedlist> +<listitem> +<para +>La comunicación entre los objetos. </para> +</listitem> + +<listitem> +<para +>La transparencia de red. </para> +</listitem> + +<listitem> +<para +>La descripción de entornos de objetos. </para> +</listitem> + +<listitem> +<para +>Independencia del lenguaje. </para> +</listitem> +</itemizedlist> + +<para +>Uno de los aspectos mas importantes de &MCOP; es el <emphasis +>lenguaje de descripción de interfaces</emphasis +>, &IDL;, por el cual muchas de las interfaces de &arts; y <acronym +>API</acronym +>s se definen en un lenguaje independiente. </para> + +<para +>Para utilizar las interfaces &IDL; de C++, está compilado por el compilador &IDL; en código C++. Cuando implementa una interfaz, éste deriva del esqueleto de una clase &IDL; que el compilador ha generado. Cuando utiliza una interfaz está utilizando un envoltorio. De esta forma, &MCOP; puede utilizar un protocolo si el objeto con el que se está comunicando no es local (de forma transparente a la red). </para> + +<para +>Este capítulo se propone describir las características básicas del modelo de objetos que resulta del uso de &MCOP;, el protocolo, cómo usar &MCOP; en C++ (lenguaje asociado), y mucho más. </para> + +</sect1> + +<sect1 id="interfaces"> + +<title +>Interfaces e &IDL;</title> + +<para +>Muchos de los servicios proporcionados por &arts;, como los módulos y el servidor de sonido, se definen en términos de <acronym +>interfaces</acronym +>. Las interfaces se especifican en un lenguaje de programación de formato independiente: &IDL;. </para> + +<para +>Ésto permite implementar que, muchos detalles como el formato de las transmisiones de datos multimedia, transparencia de red y dependencias del lenguaje de programación, estén ocultos desde la especificación de la interfaz. La herramienta, &mcopidl;, traduce la defición de interfaz a un lenguaje de programación específico (actualmente solo está soportado C++). </para> + +<para +>La herramienta genera un esqueleto con todo el código y la funcionalidad básicos. De esta clase podrá derivar las características que desee. </para> + +<para +>El &IDL; usado por &arts; es similar al usado por <acronym +>CORBA</acronym +> y <acronym +>DCOM</acronym +>. </para> + +<para +>Los archivos &IDL; pueden contener: </para> + +<itemizedlist> +<listitem> +<para +>Directivas #include al estilo C para otros archivos &IDL;. </para> +</listitem> + +<listitem> +<para +>Definición de tipos de enumeraciones y estructuras, cono en C/C++. </para> +</listitem> + +<listitem> +<para +>Definición de interfaces. </para> +</listitem> +</itemizedlist> + +<para +>En &IDL;, las interfaces se definen como una clase C++ o como una estructura C, pero con algunas restricciones. Como en C++, las interfaces pueden contener otras interfaces usando la herencia. Las definiciones de interfaces pueden incluír tres cosas: transmisiones, atributos y métodos. </para> + +<sect2 id="streams"> + +<title +>Transmisiones</title> + +<para +>Las transmisiones definen datos multimedia, uno de los componentes más importantes de un módulo. Las transmisiones se definen con el siguiente formato: </para> + +<para +>[ async ] in|out [ multi ] <replaceable +>tipo</replaceable +> stream <replaceable +>nombre</replaceable +> [ , <replaceable +>nombre</replaceable +> ] ; </para> + +<para +>Los transmisiones tienen una dirección definida con respecto al módulo, que se indica con las partículas in y out. El tipo de argumento define el tipo de datos, que puede ser uno de los tipos descritos más tarde para los atributos (no todos están actualmente soportados). Muchos módulos usan el tipo de transmisión de audio, que es un alias para 'punto flotante' ya que es el formato interno de datos usado para la transmisión de audio. Se pueden definir múltiples transmisiones del mismo tipo en la misma definición utilizando nombres separados por comas. </para> + +<para +>Las transmisiones son de manera predeterminada síncronas, que significa que son corrientes contínuas de datos a un ratio constante, como el audio <acronym +>PCM</acronym +>. El calificador async especifica una transmisión asíncrona, que se usa para corrientes discontínuas de datos. El ejemplo más común de flujo asíncrono es los mensajes &MIDI;. </para> + +<para +>La palabra clave multi, sólo válida para transmisiones de entrada, indica que la interfaz soporta un número variable de entradas. Ésto es útil para implementar dispositivos como mezcladores que puedan aceptar cualquier número de transmisiones de entrada. </para> + +</sect2> +<sect2 id="attributes"> + +<title +>Atributos</title> + +<para +>Los atributos son datos asociados con una instancia de una interfaz. Se declaran como variables miembro en C++, y puede usar algunos de los tipos primitivos boolean, byte, long, string o float. Puede también usar tipos enumerados o estructuras definidas por el usuario así como secuencias de tamaño variable usando la sintaxis sequence<type>. Los atributos pueden ser opcionalmente marcados como solo léctura. </para> + +</sect2> +<sect2 id="methods"> + +<title +>Métodos</title> + +<para +>Como en C++, los métodos pueden definirse en las interfaces. Los parámetros de los métodos están restringidos al mismo tipo que los atributos. La palabra clave oneway indica un método que retorna inmediatamente y se ejecuta asincrónicamente. </para> + +</sect2> + +<sect2 id="standardinterfaces"> + +<title +>Interfaces estándar</title> + +<para +>Muchas interfaces de módulos estándar están ya definidas en &arts;, como <interfacename +>StereoEffect</interfacename +> y <interfacename +>SimpleSoundServer</interfacename +>. </para> + +</sect2> + +<sect2 id="example"> +<title +>Ejemplo</title> + +<para +>Un simple ejemplo de módulo sacado de &arts; es el módulo retraso constante, alojado en el archivo <filename +>tdemultimedia/arts/modules/artsmodules.idl</filename +>. La definición de la interfaz se lista a continuación. </para> + +<programlisting +>interface Synth_CDELAY : SynthModule { + attribute float time; + in audio stream invalue; + out audio stream outvalue; +}; +</programlisting> + +<para +>Este módulo se hereda de <interfacename +>SynthModule</interfacename +>. Esta interfaz, definida en <filename +>artsflow.idl</filename +>, define los métodos estándar implementados en todos los módulos de sintetizadores de música. </para> + +<para +>CDELAY provoca un retraso en la transferencia del audio estéreo durante el tiempo especificado como un parámetro de coma flotante. La definición del interfaz tiene un atributo de tipo número de coma flotante para guardar el valor del retraso. Define dos transferencias de entrada de audio y dos de salida (habitual en los efectos estereofónicos). No precisa de otros métodos cuando se heredan éstos. </para> + +</sect2> + +</sect1> + +<sect1 id="more-about-streams"> +<title +>Más sobre transmisiones</title> + +<para +>Esta sección añade algunos consejos relacionados con las transmisiones. </para> + +<sect2 id="stream-types"> +<title +>Tipos de transmisión</title> + +<para +>Hay algunos requerimientos para que un módulo pueda hacer transmisión. Para ilustrar esto, considere los siguientes ejemplos: </para> + +<itemizedlist> +<listitem> +<para +>Escalar una señal por un factor dos. </para> +</listitem> + +<listitem> +<para +>Realizar conversiones de la frecuencia de muestreo. </para> +</listitem> + +<listitem> +<para +>Descomprimir una señal codificada con RLE. </para> +</listitem> + +<listitem> +<para +>Leer eventos &MIDI; desde <filename class="devicefile" +>/dev/midi00</filename +> e insertarlos en una transmisión. </para> +</listitem +> +</itemizedlist> + +<para +>El primer caso es el más simple: una vez que se reciben 200 muestras de entrada el módulo produce 200 muestras de salida. Solamente produce salida cuando recibe una entrada. </para> + +<para +>El segundo caso produce diferentes números de muestras de salida cuando recibe 200 muestras de entrada. Depende de la conversión que se realice, pero ese número se conoce a priori. </para> + +<para +>El tercer caso es incluso peor. Ya desde el principio no podrá averiguar cuántos datos reciben entradas de 200 bytes (probablemente muchos más de 200 bytes, pero...). </para> + +<para +>El último caso es un módulo que viene activo por sí mismo, y que en ocasiones produce datos. </para> + +<para +>En &arts;-0.3.4, solo se manejaban las transmisiones de primer tipo, y la mayor parte de las cosas funcionaban. Ésto es lo que probablemente necesitaba para escribir módulos que procesen audio. El problema con los demás tipos más complejos de transmisión, es que son difíciles de programar, y la mayor parte de las veces no necesitará estas características. Esto se debe a que podemos hacerlo con dos tipos diferentes de transmisiones: síncrona y asíncrona. </para> + +<para +>Las transmisiones síncronas tienen estas características: </para> + +<itemizedlist> +<listitem> +<para +>Los módulos deben ser capaces de calcular datos de cualquier longitud, dada una entrada suficiente. </para> +</listitem> + +<listitem> +<para +>Todas las transmisiones tienen el mismo ratio de muestreo. </para> +</listitem> + +<listitem> +<para +>La función <function +>calculateBlock()</function +> se llamará cuando existan suficientes datos disponibles, y el módulo pueda depender de que los punteros apunten a los datos. </para> +</listitem +> + +<listitem> +<para +>No se puede hacer asignación ni liberación de memoria. </para> +</listitem> +</itemizedlist> + +<para +>La transmisión asíncrona, por otro lado, sigue este comportamiento: </para> + +<itemizedlist> +<listitem> +<para +>Los módulos pueden producir datos algunas veces, o con ratio de muestreo variable, o solo si reciben una entrada desde algún descriptor de archivo. No se rigen por la regla «tener que ser capaces de satisfacer peticiones de cualquier tamaño». </para> +</listitem> + +<listitem> +<para +>Las transmisiones asíncronas de un módulo pueden tener ratios de muestreo completamente diferentes. </para> +</listitem> + +<listitem> +<para +>Transmisiones salientes: hay funciones específicas para asignar paquetes, para enviar paquetes, y un mecanismo opcional de votación que le dirá cuando debe crear más datos. </para> +</listitem> + +<listitem> +<para +>Transmisiones entrantes: puede recibir una llamada cuando recibe un nuevo paquete. Tendría que establecer cuándo se procesan todos los datos del paquete, si no lo hacen de una vez (lo podrá decidir posteriormente, y en el caso de que alguien haya procesado un paquete, indicar si se liberará/reutilizará). </para> +</listitem> +</itemizedlist> + +<para +>Cuando declare transmisiones, utilice la palabra clave «async» para indicar que desea hacer un flujo asíncrono. Así, por ejemplo, imaginemos que desea convertir una transimisión asíncrona de bytes en una transmisión síncrona de muestras. Su interfaz debería parecerse a esto: </para> + +<programlisting +>interface TransmisionDeByteAAudio : SynthModule { + async in byte stream entrada; // la transmisión asíncrona de entrada de muestras + + out audio stream izquierda,derecha; // la transmisión síncrona de salida de muestras +}; +</programlisting> + +</sect2> + +<sect2 id="async-streams"> +<title +>Utilizar transmisiones asíncronas</title> + +<para +>Suponga que decide escribir un módulo para producir sonido asíncronamente. Su interfaz puede parecerse a algo como esto: </para> + +<programlisting +>interface UnModulo : SynthModule +{ + async out byte stream salida; +}; +</programlisting> + +<para +>¿Cómo puede enviar los datos? El primer método se llama «push delivery» (entrega por empuje). Con las transmisiones asíncronas envía los datos como paquetes. Ésto significa que envía paquetes individuales con bytes como en el ejemplo de arriba. El proceso actual es: asignar un paquete, rellenarlo, enviarlo. </para> + +<para +>Ahora en términos de código. Primero asignamos el paquete: </para> + +<programlisting +>DataPacket<mcopbyte> *paquete = salida.allocPacket(100); +</programlisting> + +<para +>Ahora lo rellenamos: </para> + +<programlisting +>// convertir de modo que fgets contenga un puntero (char *) +char *datos = (char *)paquete->contents; + +// como puede ver, podrá reducir el tamaño del paquete tras la asignación +// si así lo desea +if(fgets(datos,100,stdin)) + paquete->size = strlen(datos); +else + paquete->size = 0; +</programlisting> + +<para +>Ahora lo enviamos: </para> + +<programlisting +>paquete->send(); +</programlisting> + +<para +>Ésto es muy simple, pero si deseamos enviar paquetes con la misma velocidad que el receptor pueda procesarlos, necesitaremos otra aproximación, el método «pull delivery» (entrega por empuje). Envía paquetes tan pronto como el receptor está preparado para procesarlos. Empieza con una cierta cantidad de paquetes que envía. Cuando el receptor procesa un paquete tras otro, se comenzará a rellenarlos con datos nuevos y se enviarán nuevamente. </para> + +<para +>Empiece llamando a setPull. Por ejemplo: </para> + +<programlisting +>salida.setPull(8, 1024); +</programlisting> + +<para +>Significa que desea enviar paquetes sobre los datos de salida. Tiene que empezar enviando 8 paquetes de una vez, y cuando el receptor procese alguno de ellos, tiene que rellenarlos. </para> + +<para +>Entonces, necesita implementar un método que llene los paquetes, que podría parecerse a esto: </para> + +<programlisting +>void request_salida(DataPacket<mcopbyte> *paquete) +{ + paquete->size = 1024; // no debe ser mayor que 1024 + for(int i = 0;i < 1024; i++) + paquete->contents[i] = (mcopbyte)'A'; + paquete->send(); +} +</programlisting> + +<para +>Ya está. Cuando se necesite enviar más datos, se puede empezar a enviar paquetes con tamaño cero, lo que detendrá la recepción. </para> + +<para +>Fíjese que es esencial dar al método el nombre exacto <methodname +>request_<replaceable +>nombre_transmision</replaceable +></methodname +>. </para> + +<para +>Empezamos enviando datos. Recibirlos es mucho más sencillo. Suponga que tiene un filtro ParaMinusculas, que simplemente convierte todas las letras en minúsculas: </para> + +<programlisting +>interface ParaMinusculas { + async in byte stream entrada; + async out byte stream salida; +}; +</programlisting> + +<para +>Es realmente simple de implementar. Aquí está la implementación completa: </para> + +<programlisting +>class ParaMinusculas_impl : public ParaMinusculas_skel { +public: + void process_entrada(DataPacket<mcopbyte> *paquete_entrada) + { + DataPacket<mcopbyte> *paquete_salida = salida.allocPacket(paquete_entrada->size); + + // convierte a minúsculas + char *texto_entrada = (char *)paquete_entrada->contents; + char *texto_salida = (char *)paquete_salida->contents; + + for(int i=0;i<paquete_entrada->size;i++) + textosalida[i] = tolower(textoentrada[i]); + + paquete_entrada->processed(); + paquete_salida->send(); + } +}; + +REGISTER_IMPLEMENTATION(ParaMinusculas_impl); +</programlisting> + +<para +>De nuevo, es esencial nombrar el método como <methodname +>process_<replaceable +>nombre_transmision</replaceable +></methodname +>. </para> + +<para +>Como puede comprobar, para cada paquete que llega tiene una llamada para una función (llamada <function +>process_entrada</function +>en nuestro caso). Necesita llamar al método <methodname +>processed()</methodname +> de un paquete para indicar que lo ha procesado. </para> + +<para +>Un consejo para la implementación: si el procesado tarda mucho (&ie;, si necesita esperar la salida de la tarjeta de sonido o algo similar), no llame a lo procesado inmediatamente, en su lugar almacene el paquete de datos completo y procese la llamada tan pronto como el paquete se haya procesado. De esta forma, los emisores tienen la posibilidad de saber cuanto durará su trabajo. </para> + +<para +>Como la sincronización con flujos asíncronos no es muy buena, debe usar flujos síncronos cuando sea posible y flujos asíncronos solo cuando sea necesario. </para> + +</sect2> + +<sect2 id="default-streams"> +<title +>Transmisiones predeterminadas</title> + +<para +>Suponga que tiene 2 objetos, por ejemplo un ProductorDeAudio y un ConsumidorDeAudio. El ProductorDeAudio tiene una transmisión de salida y el ConsumidorDeAudio tiene una de entrada. Cada vez que intente conectarlos, usará estas 2 transmisiones. El primer uso de predeterminación es el de habilitarle para hacer las conexiones sin especificar los puertos. </para> + +<para +>Ahora imagine que los dos objetos anteriores pueden manejar estéreo, y que cada uno tiene un puerto «izquierdo» y otro «derecho». Podría conectarse a ellos de una forma todavía más fácilmente que antes. Pero ¿cómo puede saber el sistema que se conecta cuál es el puerto de salida y cuál el de entrada? No existe una forma correcta de mapear la transmisión. De forma predeterminada se especifican varias transmisiones, con un orden. Así, cuando conecta un objeto con 2 salidas de transmisión predeterminada con otro con 2 entradas de transmisión predeterminadas, no necesitará especificar los puertos, y el mapeado se realizará de forma correcta. </para> + +<para +>Por supuesto, no está limitado al estéreo. Cualquier número de transmisiones pueden declararse predeterminados si es necesario, y la función connect comprobará que el número predeterminado para 2 objetos coinciden (en la dirección requerida) si usted no especifica los puertos a usar. </para> + +<para +>La sintaxis es la siguiente: en el &IDL;, puede usar la palabra clave 'default' en la declaración de la transmisión, o en una línea simple. Por ejemplo: </para> + +<programlisting +>interface CombinarDosEnUno { + default in audio stream entrada1, entrada2; + out audio stream salida; +}; +</programlisting> + +<para +>En este ejemplo, el objeto esperará a sus dos puertos de entrada estén conectados de forma predeterminada. La orden es la especificada en la línea 'default', por lo que un objeto como este otro: </para> + +<programlisting +>interface GeneradorDeRuidoDual { + out audio stream bzzt, couic; + default couic, bzzt; +}; +</programlisting> + +<para +>Hará conexiones de «couic» a «entrada1», y de «bzzt» a «entrada2» automáticamente. Tenga en cuenta que como solo hay una entrada para el mezclador, en este caso se hará de forma predeterminada (ver a continuación). La sintaxis utilizada en el generador de ruido es práctica para declarar un orden diferente que en la declaración, o seleccionando únicamente unos pocos puertos predeterminados. Las direcciones de los puertos en esta línea se pueden buscar por &mcopidl;, por tanto no lo especifique. Incluso puede mezclar puertos de entrada y de salida en cada línea, sólo es importante el orden. </para> + +<para +>Cuando se utiliza la herencia se deben seguir ciertas reglas: </para> + +<itemizedlist> +<listitem> +<para +>Si hay una lista predeterminada especificada en el &IDL;, la utilizará. Los puertos padre pueden ser colocados en esta lista también, ya sean predefinidos en el padre o no. </para> +</listitem> + +<listitem> +<para +>En otro caso hereda los valores predeterminados del padre. El orden es padre1 predeterminado1, padre1 predeterminado2.., padre2 predeterminado1... Si existe un antecedente común a ambos utilizando 2 ramas padre, se realiza una mezcla similar a un «virtual public» de forma predeterminada en la primera aparición de la lista. </para> +</listitem> + +<listitem> +<para +>Si todavía no hay una predeterminada y existe una transmisión simple en una dirección, ésta se utiliza como predeterminada para esta dirección. </para> +</listitem> +</itemizedlist> + +</sect2> + +</sect1> +<sect1 id="attribute-change-notify"> +<title +>Notificaciones de cambio de atributos</title> + +<!-- TODO: This should be embedded better into the context - I mean: the + context should be written ;-). --> + +<para +>Las notificaciones de cambio de atributos son una forma de saber cuando un atributo cambia. Es comparable con las señales y slots de &Qt; o Gtk. Por ejemplo, si tiene un elemento de una &GUI;, un deslizador, que configura un número entre 0 y 100, normalmente dispondrá de un objeto que haga algo con ese número (por ejemplo, podría estar controlando el volumen de alguna señal de audio). Por lo que le gustaría que una vez que el deslizador se mueva, el objeto que escala el volumen reciba una notificación. Una conexión entre un emisor y un receptor. </para> + +<para +>&MCOP; negocia con ésto, siendo capaz de efectuar notificaciones cuando los atributos cambian. Lo que se declara como «atributo» en el &IDL;, puede emitir estas notificaciones de cambio, y debería hacerlo, cuando se producen modificaciones. Aquello que se declara como «atributo» también puede recibir estas notificaciones. Así, por ejemplo, si tiene dos interfaces &IDL;, como estos: </para> + +<programlisting +>interface Deslizador { + attribute long min,max; + attribute long posicion; + }; + interface ControlDeVolumen : Arts::StereoEffect { + attribute long volume; // 0..100 + }; +</programlisting> + +<para +>Puede conectarlos usando notificaciones de cambio. Funciona usando la operación normal de conectar el sistema de flujo. En este caso, el código C++ para conectar dos objetos se parecería a esto: </para> + +<programlisting +>#include <connect.h> +using namespace Arts; +[...] +connect(deslizador,"position_changed",volumeControl,"volume"); +</programlisting> + +<para +>Como puede ver, cada atributo ofrece dos flujos diferentes, uno para enviar notificaciones de cambio, llamado <function +><replaceable +>nombre_atributo</replaceable +>_changed</function +>, y uno para recibir notificaciones de cambio, llamado <function +>nombre_atributo</function +>. </para> + +<para +>Es importante saber que las notificaciones de los cambios y las transmisiones asíncronas son compatibles. Son transparentes a la red. Por eso puede conectar una notificación de un cambio de un atributo en coma flotante de un componente de un &GUI; a una transmisión asíncrona de un módulo de síntesis que se esté ejecutando en otro ordenador. Esto implica que las notificaciones de cambio son <emphasis +>no síncronas</emphasis +>, lo que significa que después de que haya enviado la notificación de cambio, pasará algún tiempo hasta que la reciba realmente. </para> + +<sect2 id="sending-change-notifications"> + +<title +>Enviando notificaciones de cambio</title> + +<para +>Cuando implementa objetos que contienen atributos, necesita enviar notificaciones de cambio cuando un atributo cambia. El código para hacer esto debe parecerse a esto: </para> + +<programlisting +>void KPoti_impl::value(float nuevoValor) + { + if(nuevoValor != _valor) + { + _valor = nuevoValor; + value_changed(nuevoValor); // <- envía notificación de cambio + } + } +</programlisting> + +<para +>Es altamente recomendable utilizar código como éste para todos los objetos que implemente, ya que las notificaciones de cambio puede ser utilizadas por otras personas. Debería sin embargo evitar el envío de notificaciones con demasiada frecuencia, ya que si está procesando la señal, probablemente será mejor que mantenga un registro de cuando envió la última notificación, de forma que no envíe una con cada muestra que procese. </para> + +</sect2> + +<sect2 id="change-notifications-apps"> +<title +>Aplicaciones para notificaciones de cambio</title> + +<para +>Es especialmente práctico utilizar notificaciones de cambio junto con osciloscopios (elementos que visualizan datos de audio, por ejemplo), elementos gráficos, elementos de control, y monitorización. El código que utiliza esto se encuentra en <filename class="directory" +>tdelibs/arts/tests</filename +>, y en la implementación experimental de artsgui, que puede encontrar en <filename class="directory" +>tdemultimedia/arts/gui</filename +>. </para> + +<!-- TODO: can I markup links into the source code - if yes, how? --> + +<!-- LW: Linking into the source is problematic - we can't assume people are +reading this on a machine with the sources available, or that they aren't +reading it from a website. We're working on it! --> + +</sect2> +</sect1> + +<sect1 id="the-mcoprc-file"> + +<title +>El archivo <literal role="extension" +>.mcoprc</literal +></title> + +<para +>El archivo <literal role="extension" +>.mcoprc</literal +> (se encuentra en cada carpeta personal de cada usuario) puede usarse para configurar &MCOP; de diferentes maneras. Actualmente, son posibles las siguientes: </para> + +<variablelist> + +<varlistentry> +<term +>GlobalComm</term> +<listitem> +<para +>El nombre de un interfaz que se utilizará para la comunicación global. La comunicación global se utiliza para encontrar otros objetos y para obtener la cookie secreta. Los múltiples clientes/servidores &MCOP; deberían ser capaces de hablar entre ellos y para ello necesitan un objeto GlobalComm que sea capaz de compartir información entre ellos. Actualmente, los posibles valores son «Arts::TmpGlobalComm» para comunicarse a través de la carpeta <filename class="directory" +>/tmp/mcop-<replaceable +>nombreusuario</replaceable +></filename +> (que únicamente pueden trabajar en el ordenador local) y «Arts::X11GlobalComm» para comunicarse a través de las propiedades de la ventana raíz en el servidor X11. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>TraderPath</term> + +<listitem> +<para +>Especifica dónde encontrar la información de negociación. Puede enumerar más de una carpeta aquí separándolas por comas, como en el ejemplo. </para> +</listitem> + +</varlistentry> + +<varlistentry> +<term +>ExtensionPath</term> + +<listitem> +<para +>Especifica qué extensiones de carpetas se cargarán (en forma de bibliotecas compartidas). Se pueden especificar múltiples valores separados por comas. </para> +</listitem> + +</varlistentry> +</variablelist> + +<para +>Un ejemplo que usa todo lo que se describe arriba: </para> + +<programlisting +># archivo $HOME/.mcoprc +GlobalComm=Arts::X11GlobalComm + +# si es un desarrollador, puede ser práctico añadir una carpeta en su carpeta personal +# para que la ruta del negociador/extensión sea capaz de añadir componentes sin +# instalarlos +TraderPath="/opt/kde2/lib/mcop","/home/jose/mcopdesarrollo/mcop" +ExtensionPath="/opt/kde2/lib","/home/jose/mcopdesarrollo/lib" +</programlisting> + +</sect1> + +<sect1 id="mcop-for-corba-users"> +<title +>&MCOP; para usuarios de <acronym +>CORBA</acronym +></title> + +<para +>Si ha usado <acronym +>CORBA</acronym +> antes, verá que &MCOP; es más o menos lo mismo. De hecho, &arts; antes de la versión 0.4 usaba <acronym +>CORBA</acronym +>. </para> + +<para +>La idea básica de <acronym +>CORBA</acronym +> es la misma: implementar objetos (componentes). Usando las características de &MCOP;, sus objetos no están solo disponibles como clases normales del mismo proceso (via técnicas estándar de C++), sino también para servidores remotos de forma transparente. Para este trabajo, lo primero que necesita hacer es especificar la interfaz de sus objetos en un archivo &IDL;, al igual que el &IDL; de <acronym +>CORBA</acronym +>. Solo hay unas pequeñas diferencias. </para> + +<sect2 id="corba-missing"> +<title +>Características de <acronym +>CORBA</acronym +> que no existen en &MCOP;</title> + +<para +>En &MCOP; no existen los parámetros «in» y «out» en las invocaciones de métodos. Los parámetros son siempre de entrada, el código de retorno es siempre de salida, lo que significa que la interfaz: </para> + +<programlisting +>// idl CORBA +interface Contabilizar { + void cargar( in long importe ); + void abonar( in long importe ); + long saldo(); +}; +</programlisting> + +<para +>se escribe como: </para> + +<programlisting +>// idl MCOP +interface Contabilizar { + void cargar( long importe ); + void abonar( long importe ); + long saldo(); +}; +</programlisting> + +<para +>en &MCOP;. </para> + +<para +>No existe soporte de excepciones. &MCOP; no tiene excepciones, utiliza algo diferente para la gestión de errores. </para> + +<para +>No existen tipos 'union' ni 'typedef'. No se si realmente es un fallo, o una medida desesperada para sobrevivir. </para> + +<para +>No existe soporte para interfaces pasivas o referencias a objetos. </para> + +</sect2> + +<sect2 id="corba-different"> +<title +>Características de <acronym +>CORBA</acronym +> que son diferentes en &MCOP;</title> + +<para +>Declara secuencias como «secuencia<replaceable +>tipo</replaceable +>» en &MCOP;. No se necesita 'typedef'. Por ejemplo, en lugar de: </para> + +<programlisting +>// idl CORBA +struct Linea { + long x1,y1,x2,y2; +}; +typedef sequence<Linea> Lineas; +interface Trazador { + void trazar(in Lineas lineas); +}; +</programlisting> + +<para +>usted escribiría </para> + +<programlisting +>// idl MCOP +struct Linea { + long x1,y1,x2,y2; +}; +interface Trazador { + void trazar(sequence<Linea> lineas); +}; +</programlisting> + +</sect2> + +<sect2 id="no-in-corba"> +<title +>Características de &MCOP; que no existen en <acronym +>CORBA</acronym +></title> + +<para +>Puede declarar transmisiones, que se evaluarán por el entorno de trabajo &arts;. Las transmisiones se declaran de manera similar a los atributos. Por ejemplo: </para> + +<programlisting +>// idl MCOP +interface Synth_SUMAR : SynthModule { + in audio stream señal1,señal2; + out audio stream salida; +}; +</programlisting> + +<para +>Esto indica que su objeto aceptará dos transmisiones de audio síncronas entrantes llamadas señal1 y señal2. Síncrono significa que son transmisiones que entregan x muestras por segundo (u otro periodo de tiempo), de forma que el planificador garantizará que siempre proporcione una cantidad equilibrada de datos de entrada (⪚ 200 muestras de la señal1 y 200 de la señal2). Garantizará esto si su objeto es llamado con estas 200 muestras de señal1 + señal2, que producirá exactamente 200 muestra de valor de salida. </para> + +</sect2> + +<sect2 id="mcop-binding"> +<title +>Las uniones en el lenguaje C++ en &MCOP;</title> + +<para +>Difiere de <acronym +>CORBA</acronym +> principalmente en: </para> + +<itemizedlist> +<listitem> +<para +>Las cadenas utilizan la clase <acronym +>STL</acronym +> <classname +>string</classname +> de C++. Cuando se guardan secuencias, se guardan «planas», lo que significan que son consideradas un tipo primitivo. Por esta razón necesitan ser copiadas. </para> +</listitem> + +<listitem> +<para +>Los números 'long' son 'long' normales (excepto los de 32 bit). </para> +</listitem> + +<listitem> +<para +>Las secuencias utilizan la clase <acronym +>STL</acronym +> <classname +>vector</classname +> de C++. </para> +</listitem> + +<listitem> +<para +>Todas las estructuras se derivan de la clase &MCOP; <classname +>Type</classname +>, y se generan por el compilador &IDL; de &MCOP;. Cuando se guardan en secuencias, no se guardan de forma «plana», sino como punteros, ya que sino se realizaría demasiado trabajo de copiado. </para> +</listitem> +</itemizedlist> +</sect2> + +<sect2 id="implementing-objects"> +<title +>Implementando objetos &MCOP;</title> + +<para +>Después de haber pasado a través del compilador &IDL;, necesitará derivarlos de la clase <classname +>_skel</classname +>. Por ejemplo, imagine que tiene definida una interfaz como esta: </para> + +<programlisting +>// idl MCOP: hola.idl +interface Hola { + void hola(string s); + string concatenar(string s1, string s2); + long sumar2(long a, long b); +}; +</programlisting> + +<para +>Podrá pasar ésto por el compilador &IDL; haciendo <userinput +><command +>mcopidl</command +> <parameter +>hola.idl</parameter +></userinput +>, que debería generar <filename +>hola.cc</filename +> y <filename +>hola.h</filename +>. Para implementarlo, necesitará definir una clase C++ que herede el esqueleto: </para> + +<programlisting +>// archivo cabecera C++ - incluir hola.h en algún sitio +class Hola_impl : virtual public Hola_skel { +public: + void hola(const string& s); + string concatenar(const string& s1, const string& s2); + long sumar2(long a, long b); +}; +</programlisting> + +<para +>Finalmente, necesitará implementar los métodos de la forma habitual en C++. </para> + +<programlisting +>// archivo de implementación C++ + +// como puede ver las cadenas se pasan como referencias a const string (constantes de cadena) +void Hola_impl::hola(const string& s) +{ + printf("Hola '%s'!\n",s.c_str()); +} + +// cuando devuelvan un código se pasarán como cadenas «normales» +string Hola_impl::concat(const string& s1, const string& s2) +{ + return s1+s2; +} + +long Hola_impl::sumar2(long a, long b) +{ + return a+b; +} +</programlisting> + +<para +>Una vez que haya hecho esto, tendrá un objeto que podrá comunicarse utilizando &MCOP;. Cree uno (use las funcionalidades habituales de C++ para crear un objeto): </para> + +<programlisting +>Hola_impl servidor; +</programlisting> + +<para +>y tan pronto como dé a alguien la referencia: </para> + +<programlisting +>string referencia = servidor._toString(); + printf("%s\n",referencia.c_str()); +</programlisting> + +<para +>e ir al ciclo de inactividad de &MCOP;: </para> + +<programlisting +>Dispatcher::the()->run(); +</programlisting> + +<para +>La gente puede acceder a las cosas utilizando: </para> + +<programlisting +>// este código puede ejecutarse en cualquier parte, no necesariamente en el mismo proceso +// (también puede ejecutarse en un ordenador/arquitectura diferente) + + Hola *h = Hola::_fromString([la referencia al objeto impreso anteriormente]); +</programlisting> + +<para +>y llamar a los métodos: </para> + +<programlisting +>if(h) + h->hola("prueba"); + else + printf("¿Falló el acceso?\n"); +</programlisting> + +</sect2> +</sect1> + +<sect1 id="mcop-security"> +<title +>Consideraciones de seguridad de &MCOP;</title> + +<para +>Como los servidores &MCOP; escucharán en un puerto <acronym +>TCP</acronym +>, potencialmente, todo el mundo (si está conectado a Internet) puede intentar conectarse a los servicios &MCOP;. Por esta razón, es importante autentificar a los clientes. &MCOP; utiliza el protocolo md5-auth. </para> + +<para +>El protocolo md5-auth hace lo siguiente para asegurarse que únicamente los clientes seleccionados (de confianza) pueden conectarse al servidor: </para> + +<itemizedlist> +<listitem> +<para +>Asume que da a los clientes una cookie secreta. </para> +</listitem> + +<listitem> +<para +>Cada vez que un cliente se conecta, verifica que este cliente conoce la cookie secreta, sin transferirla (no sea que alguien que esté escuchando el tráfico de la red pueda descubrirla). </para> +</listitem> + +</itemizedlist> + +<para +>Para dar a cada cliente la cookie secreta, &MCOP; la colocará (normalmente) en la carpeta <filename class="directory" +>mcop</filename +> (en <filename class="directory" +>/tmp/mcop-<envar +>USER</envar +>/secret-cookie</filename +>). Por supuesto, puede copiarla a otros ordenadores. Sin embargo, si lo hace, utilice un mecanismo de transferencia segura, como <command +>scp</command +> (en <application +>ssh</application +>). </para> + +<para +>La autentificación de los clientes sigue los siguientes pasos: </para> + +<procedure> +<step> +<para +>[SERVIDOR] genera una cookie nueva (aleatoria) R. </para> +</step> + +<step> +<para +>[SERVIDOR] la envía al cliente. </para> +</step> + +<step> +<para +>[CLIENTE] lee la «cookie secreta» S desde un archivo. </para> +</step> + +<step> +<para +>[CLIENTE] baraja las cookies R y S y las transforma en una cookie barajada M utilizando el algoritmo MD5. </para> +</step> + +<step> +<para +>[CLIENTE] envía M al servidor. </para> +</step> + +<step> +<para +>[SERVIDOR] verifica que las R y S barajadas dan el mismo resultado que la cookie M recibida por el cliente. Si esto es así, la autentificación es correcta. </para> +</step> + +</procedure> + +<para +>Este algoritmo debería ser seguro, debido a: </para> + +<orderedlist> +<listitem> +<para +>Las cookies secretas y la aleatoria son «suficientemente aleatorias». </para> +</listitem> + +<listitem> +<para +>El algoritmo de cálculo de clave MD5 no permite encontrar el «texto original», formado por la cookie S y la cookie aleatoria R (que de cualquier forma es conocida), a partir de la cookie barajada M. </para> +</listitem> +</orderedlist> + +<para +>El protocolo &MCOP; comienza cada conexión nueva con un proceso de autentificación. Básicamente, se parece a esto: </para> + +<procedure> + +<step> +<para +>El servidor envía un mensaje ServerHello, que describe los protocolos de autentificación conocidos. </para> +</step> + +<step> +<para +>El cliente envía un mensaje ClientHello, que incluye información de autentificación. </para> +</step> + +<step> +<para +>El servidor envía un mensage AuthAccept. </para> +</step> +</procedure> + +<para +>Para comprobar como funciona la seguridad, deberíamos echar un vistazo a cómo se procesan los mensajes en las conexiones sin autentificar: </para> + +<itemizedlist> +<listitem> +<para +>Antes de que se produzca la autentificación, el servidor no recibirá otros mensajes de conexión. En su lugar, si el servidor, por ejemplo, espera un mensaje «ClienteHello», y obtiene un mensaje mcopInvocation, cerrará la conexión. </para> +</listitem> + +<listitem> +<para +>Si el cliente no envía un mensaje &MCOP; válido (sin el código especial de &MCOP; en el mensaje de cabecera) en la fase de autentificación, sino otra cosa, la conexión se cerrará. </para> +</listitem> + +<listitem> +<para +>Si el cliente intenta enviar un mensaje extremadamente largo (> 4.096 bytes en la fase de autentificación, el tamaño del mensaje se truncará a 0 bytes, lo que provocará que no sea aceptado para la autentificación). Esto evita que los clientes que no estén autentificados envíen ⪚ 100 megabytes de mensaje, que si se recibieran provocarían que el servidor se quedase sin memoria. </para> +</listitem> + +<listitem> +<para +>Si el cliente envía un mensaje ClientHello corrupto (uno en el que ha fallado la decodificación), la conexión se cierra. </para> +</listitem> + +<listitem> +<para +>Si el cliente no envía nada, finalizará el tiempo de espera (para implementar). </para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="mcop-protocol"> +<title +>Especificaciones del protocolo &MCOP;</title> + +<sect2 id="mcop-protocol-intro"> +<title +>Introducción</title> + +<para +>Conceptualmente es similar a <acronym +>CORBA</acronym +>, pero pretende ampliarlo de forma que dé cobertura a las operaciones multimedia en tiempo real. </para> + +<para +>Proporciona un modelo de objeto multimedia, que puede utilizarse por ambos: comunicación entre componentes en un espacio de dirección (un proceso), y entre componentes que están en diferentes hilos, procesos o en diferentes servidores. </para> + +<para +>Todo junto, será diseñado para obtener un rendimiento extremadamente alto (de forma que todo sea optimizado para ser extremadamente rápido), lo que es deseable para las aplicaciones multimedia muy comunicativas. Por ejemplo, la transmisión de vídeos es una de las aplicaciones de &MCOP;, donde la mayoría de las aplicaciones <acronym +>CORBA</acronym +> caerían. </para> + +<para +>Las definiciones de interfaz pueden manejar lo siguiente nativamente: </para> + +<itemizedlist> +<listitem> +<para +>Transmisión contínua de datos (como datos de audio). </para> +</listitem> + +<listitem> +<para +>Transmisión de datos de eventos (como eventos &MIDI;). </para> +</listitem> + +<listitem> +<para +>Cuenta de referencia real. </para> +</listitem> +</itemizedlist> + +<para +>Y los trucos más importantes de <acronym +>CORBA</acronym +>, como: </para> + +<itemizedlist> +<listitem> +<para +>Invocaciones de métodos sícronos. </para> +</listitem> + +<listitem> +<para +>Invocaciones de métodos asíncronos. </para> +</listitem> + +<listitem> +<para +>Construir tipos de datos definidos por el usuario. </para> +</listitem> + +<listitem> +<para +>Herencia múltiple. </para> +</listitem> + +<listitem> +<para +>Pasar referencias de objetos. </para> +</listitem> +</itemizedlist> + +</sect2> + +<sect2 id="mcop-protocol-marshalling"> +<title +>La codificación del mensaje &MCOP;</title> + +<para +>Diseño de objetivos/ideas: </para> + +<itemizedlist> + +<listitem> +<para +>La codificación debería ser fácil de implementar. </para> +</listitem> + +<listitem> +<para +>La decodificación requiere que el receptor conozca el tipo que desea decodificar. </para> +</listitem> + +<listitem> +<para +>Se espera que el receptor utilice toda la información, por eso, se ignoran los datos del protocolo en la medida que: </para> + +<itemizedlist> +<listitem> +<para +>Si sabe que va a recibir un bloque de bytes, no necesitará buscar en cada byte un marcador. </para> +</listitem> + +<listitem> +<para +>Si sabe que va a recibir una cadena, no necesitará leer hasta encontrar el byte cero para averiguar su tamaño. </para> +</listitem> + +<listitem> +<para +>Sin embargo, si sabe que va a recibir una secuencia de cadenas, necesitará saber la longitud de cada una de ellas para conocer el final de la secuencia, ya que las cadenas tienen longitud variable. Pero si utiliza las cadenas para hacer algo práctico, necesitará hacer esto de todas formas, por ello no se perderá nada. </para> +</listitem> +</itemizedlist> + +</listitem> + +<listitem> +<para +>Uso del sistema lo más pequeña posible. </para> +</listitem> +</itemizedlist> + +<!-- TODO: Make this a table --> + +<para +>La codificación de los diferentes tipos se muestra a continuación: </para> + +<informaltable> +<tgroup cols="3"> +<thead> +<row> +<entry +>Tipo</entry> +<entry +>Proceso de codificación</entry> +<entry +>Resultado</entry> +</row> +</thead> + +<tbody> +<row> +<entry +><type +>void</type +></entry> +<entry +>Los tipo <type +>void</type +> se codifican omitiéndolos, por tanto no se escribe nada en la transmisión para ellos.</entry> +<entry +></entry> +</row> + +<row> +<entry +><type +>long</type +></entry> +<entry +>Se codifica con cuatro bytes, primero el byte más significativo, por eso, el número 10.001.025 (que es 0x989a81) se codificaría como:</entry> +<entry +><literal +>0x00 0x98 0x9a 0x81</literal +></entry> +</row> + +<row> +<entry +><type +>enums</type +></entry> +<entry +><para +>se codifican como los tipos <type +>long</type +>.</para +></entry> +<entry +></entry> +</row> + +<row> +<entry +><type +>byte</type +></entry> +<entry +><para +>Se codifica como un solo byte, por tanto el byte 0x42 se codificaría como:</para +></entry> +<entry +><literal +>0x42</literal +></entry> +</row> + +<row> +<entry +><type +>string</type +></entry> +<entry +><para +>Se codifica como un tipo <type +>long</type +>, conteniendo la longitud de la siguiente cadena, y a continuación la secuencia de caracteres de la cadena finalizando con un byte cero (que se incluye en la longitud).</para> +<important> +<para +>¡incluye el byte 0 para determinar el tamaño!</para> +</important> +<para +>«hola» se codificaría como:</para +></entry> +<entry +><literal +>0x00 0x00 0x00 0x05 0x68 0x6f 0x6c 0x61 0x00</literal +></entry> +</row> + +<row> +<entry +><type +>boolean</type +></entry> +<entry +><para +>Se codifica como un byte, conteniendo 0 si es <returnvalue +>falso</returnvalue +> o 1 si es <returnvalue +>verdadero</returnvalue +>, por ello, el valor lógico <returnvalue +>verdadero</returnvalue +> se codificaría como:</para +></entry> +<entry +><literal +>0x01</literal +></entry> +</row> + +<row> +<entry +><type +>float</type +></entry> +<entry +><para +>Se codifica utilizando las representación IEEE754 de cuatro bytes - el documento que detalla cómo funciona IEEE se encuentra aquí: <ulink url="http://twister.ou.edu/workshop.docs/common-tools/numerical_comp_guide/ncg_math.doc.html" +>http://twister.ou.edu/workshop.docs/common-tools/numerical_comp_guide/ncg_math.doc.html</ulink +> y aquí: <ulink url="http://java.sun.com/docs/books/vmspec/2nd-edition/html/Overview.doc.html" +>http://java.sun.com/docs/books/vmspec/2nd-edition/html/Overview.doc.html</ulink +>. Por tanto, el valor 2,15 se codificaría como:</para +></entry> +<entry +><literal +>0x9a 0x99 0x09 0x40</literal +></entry> +</row> + +<row> +<entry +><type +>struct</type +></entry> +<entry +><para +>Una estructura se codifica codificando sus contenidos. No se necesitan prefijos y sufijos adicionales, por ello, la estructura </para> +<programlisting +>struct prueba { + string name; // que es «hola» + long value; // que es 10.001.025 (0x989a81) +}; +</programlisting> +<para +>que se codificaría como</para +></entry> +<entry> +<literallayout +>0x00 0x00 0x00 0x05 0x68 0x6f 0x6c 0x61 +0x00 0x00 0x98 0x9a 0x81 +</literallayout +></entry> +</row> + +<row> +<entry +><type +>sequence</type +></entry> +<entry +><para +>Una secuencia se codifica como una lista de elementos que se siguen, codificándose, por tanto, los elementos uno a uno.</para> +<para +>Por ello una secuencia de 3 longs 'a', con a[0] = 0x12345678, a[1] = 0x01 y a[2] = 0x42 se codificaría como:</para +></entry> +<entry> +<literallayout +>0x00 0x00 0x00 0x03 0x12 0x34 0x56 0x78 +0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x42 +</literallayout> +</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<para +>Si necesita hacer referencia a un tipo, todos los tipos primitivos se referencian a través de los nombres anteriores. Las estructuras y enumeraciones tienen sus propios nombres (como Header). Las secuencias se referencian como *<replaceable +>tipo normal</replaceable +>, por tanto una secuencia de longs es «*long» y una secuencia de estructuras Header es «*Header». </para> + +</sect2> + +<sect2 id="mcop-protocol-messages"> +<title +>Mensajes</title> + +<para +>El formato de la cabecera del mensaje &MCOP; está definido por esta estructura: </para> + +<programlisting +>struct Header { + long magic; // el valor 0x4d434f50, que se codifica como MCOP + long messageLength; + long messageType; +}; +</programlisting> + +<para +>Los messsageTypes posibles son actualmente </para> + +<programlisting +>mcopServerHello = 1 +mcopClientHello = 2 +mcopAuthAccept = 3 +mcopInvocation = 4 +mcopReturn = 5 +mcopOnewayInvocation = 6 +</programlisting> + +<para +>Breves notas sobre los mensajes &MCOP;: </para> + + +<itemizedlist> +<listitem> +<para +>Todo mensaje empieza con un Header. </para> +</listitem> + +<listitem> +<para +>Algunos tipos de mensaje deberían ser ignorados por el servidor, en tanto la autentificación no se haya completado. </para> +</listitem> + +<listitem> +<para +>Después de recibir la cabecera, el protocolo (conexión) manejado puede recibir el mensaje completo, sin buscar en el contenido. </para> +</listitem> +</itemizedlist> + +<para +>El messageLength en la cabecera es, por supuesto, en muchos casos redundante, lo que significa que esta aproximación no es minimalista en lo que respecta al número de bytes. </para> + +<para +>Sin embargo, conduce a una implementación sencilla (y rápida) de procesamiento de mensajes no bloqueantes. Con la ayuda de la cabecera, el mensaje puede ser recibido por las clases que manejan el protocolo en segundo plano (no bloqueante), si existen varias conexiones al servidor, todas ellas pueden ser servidas en paralelo. No necesitará ver el contenido del mensaje, para recibirlo (y para determinar cuando ha terminado), solo la cabecera, y el código para realizar ésto es muy sencillo. </para> + +<para +>Una vez que el mensaje se encuentre allí, puede ser decodificado y procesado de una sola pasada, sin preocuparse de que no se hayan recibido todos los datos (puesto que messageLength garantiza que estén todos). </para> + +</sect2> + +<sect2 id="mcop-protocol-invocations"> +<title +>Llamadas</title> + +<para +>Para llamar a un método remoto, necesita enviar la siguiente estructura en el cuerpo de un mensaje &MCOP; con messageType = 1 (mcopInvocation): </para> + +<programlisting +>struct Invocation { + long objectID; + long methodID; + long requestID; +}; +</programlisting> + +<para +>después de esto, enviará el parámetro como estructura, ⪚ si llama el método string concatenar(string s1, string s2), enviará una estructura como: </para> + +<programlisting +>struct InvocationBody { + string s1; + string s2; +}; +</programlisting> + + +<para +>Si el método se declara unidireccional, lo que significa asíncrono, sin devolver código, ésto será todo. En otro caso, recibirá un mensaje de respuesta con messageType = 2 (mcopReturn). </para> + +<programlisting +>struct ReturnCode { + long requestID; + <tipo_devuelto> result; +}; +</programlisting> + + +<para +>donde <tipodevuelto> es el tipo del resultado. Como los tipos void se omiten en la codificación, también podrá escribir el requestID si devuelve algo desde un método void. </para> + +<para +>Por tanto nuestro string concat(string s1, string s2) darían como resultado un código devuelto cómo </para> + +<programlisting +>struct ReturnCode { + long requestID; + string result; +}; +</programlisting> + +</sect2> + +<sect2 id="mcop-protocol-inspecting"> +<title +>Inspección de interfaces</title> + +<para +>Para hacer llamadas, necesitará conocer los métodos que un objeto soporta. Para hacer esto, los métodos methodID 0, 1, 2 y 3 tiene predefinidas ciertas funcionalidades. Esto es </para> + +<programlisting +>long _lookupMethod(MethodDef methodDef); // methodID siempre 0 +string _interfaceName(); // methodID siempre 1 +InterfaceDef _queryInterface(string name); // methodID siempre 2 +TypeDef _queryType(string name); // methodID siempre 3 +</programlisting> + +<para +>para leer esto, por supuesto, también necesitará </para> + +<programlisting +>struct MethodDef { + string methodName; + string type; + long flags; // puesto a 0 por ahora (requerido para la transmisión) + sequence<ParamDef> signature; +}; + +struct ParamDef { + string name; + long typeCode; +}; +</programlisting> + +<para +>El campo 'parameters' contiene los componentes de tipo que especifican el tipo de los parámetros. El tipo del código devuelto se especifica en el campo 'type' de MethodDef. </para> + +<para +>Estrictamente hablando, sólo los métodos <methodname +>_lookMethod()</methodname +> y <methodname +>_interfaceName()</methodname +> son diferentes entre objetos, mientras que <methodname +>_queryInterface()</methodname +> y <methodname +>_queryType()</methodname +> son siempre los mismos. </para> + +<para +>¿Cuáles son estos methodID? si hace una llamada &MCOP;, pasará un número para el método que está llamando. La razón de ésto es que los números se pueden procesar mucho más rápido que las cadenas cuando se ejecuta una petición &MCOP;. </para> + +<para +>¿Cómo obtendrá estos números? Si conoce la firma del método, que es un MethodDef que describe el método, (que contiene el nombre, tipo, nombres de parámetro, tipos de parámetro y otros), puede pasar esto al _lookupMethod del objeto al que desea llamar un método. Como _lookupMethod está preasociado a methodID 0, no debería tener problemas para hacerlo. </para> + +<para +>Por otra parte, sino conoce la firma del método, puede encontrar qué métodos están soportados utilizando _interfaceName, _queryInterface y _queryType. </para> +</sect2> + +<sect2 id="mcop-protocol-typedefs"> +<title +>Definiciones de tipo</title> + +<para +>La definición de los tipos de datos se describen utilizando la estructura <structname +>TypeDef</structname +>: </para> + +<programlisting +>struct TypeComponent { + string type; + string name; +}; + +struct TypeDef { + string name; + + sequence<TypeComponent> contents; +}; +</programlisting> + +</sect2> +</sect1> + +<sect1 id="why-not-dcop"> +<title +>Por qué &arts; no usa &DCOP;</title> + +<para +>Desde que &kde; abandonó <acronym +>CORBA</acronym +> completamente, y está usando &DCOP; en su lugar, la pregunta natural que surge es por qué &arts; no está haciendo eso. Después de todo, el soporte para &DCOP; está en <classname +>KApplication</classname +>, está bien mantenido, y supuestamente bien integrado con libICE, entre otras cosas. </para> + +<para +>Como habrá (potencialmente) mucha gente preguntando si es realmente necesario usar &MCOP; en lugar de &DCOP; aquí está la respuesta. No me malinterpreten. No estoy intentando decir «&DCOP; es malo». Estoy intentando decir «&DCOP; no es la solución adecuada para &arts;» (mientras que sí lo es para otras muchas cosas). </para> + +<para +>En primer lugar necesita entender para qué fué escrito &DCOP; exactamente. Se creo en dos días durante el encuentro &kde;-TWO, intentó ser tan simple como fuera posible, un protocolo de comunicación realmente «ligero». La implementación descarta de forma especial todo aquello que implique complejidad, por ejemplo, un concepto completo de cómo deberían ser codificados los tipos de datos. </para> + +<para +>Aunque &DCOP; no se ocupa de ciertas cosas (como: ¿cómo envío una cadena de forma transparente por una red?) - ésto es necesario hacerlo. Por lo que, todo lo que &DCOP; no hace, se deja a &Qt; en las aplicaciones &kde; que hoy usan &DCOP;. Éste es el tipo de administración más usado (usando el operador de serialización de &Qt;). </para> + +<para +>Por lo que &DCOP; es un protocolo mínimo que habilita perfectamente a las aplicaciones &kde; para envíar mensajes simples como «abrir una ventana apuntando a http://www.kde.org» o «sus datos de configuración han cambiado». Sin embargo, dentro de &arts; el enfoque se hace en otra dirección. </para> + +<para +>La idea es que las pequeñas extensiones en &arts; se comunicarán tratando algunas estructuras de datos como «eventos midi», «punteros de posicionamiento de canciones» y «diagramas de flujo». </para> + +<para +>Estos son tipos de datos complejos, que deberían ser enviados entre diferentes objetos, y pasados como transmisiones, o parámetros. &MCOP; suple el tipo concepto, para definir tipos de datos complejos a partir de otros más simples (similar a las estructuras o matrices en C++). &DCOP; no se preocupa de los tipos, ya que esto se deja en manos del programador: escribiendo clases C++ para los tipos, y asegurándose de serializarlos correctamente (por ejemplo: soporte para el operador de transmisión de &Qt;). </para> + +<para +>Pero de esta forma, serían inaccesibles a todo lo que no fuera codificación directa C++. Especialmente, no podría diseñar un lenguaje de script, que conociese todos los tipos de extensiones que pudieran estar expuestas, ya que no se describen a sí mismos. </para> + +<para +>El mismo argumento se aplica también a los interfaces. Los objetos &DCOP; no exponen sus relaciones, jerarquía de herencias, etc. Si intentase escribir un navegador de objetos que mostrase «qué atributos tiene este objeto», no podría. </para> + + +<para +>Aunque Matthias me dijo que existía una función «functions» en cada objeto que indicaba los métodos que soporta un objeto, esto dejaría fuera cosas como atributos (propiedades), transmisiones y relaciones de herencia. </para> + +<para +>Esto rompe seriamente aplicaciones como &arts-builder;. Pero recuerde: &DCOP; no pretende ser un modelador de objetos (dado que &Qt; ya tiene alguno como <application +>moc</application +> o otros), o algo parecido a <acronym +>CORBA</acronym +>, pero sí proporcionar comunicación entre aplicaciones. </para> + +<para +>La razón por la que existe &MCOP; es: debería funcionar muy bien con la transmisión entre objetos. &arts; hace uso intensivo de pequeñas extensiones, que se interconecta con las transmisiones. La versión <acronym +>CORBA</acronym +> de &arts; tuvo que introducir una división muy incómoda entre «los objetos SynthModule», que era la forma en que los módulos funcionaban cuando hacían la transmisión, y «el interfaz <acronym +>CORBA</acronym +>», que era algo externo. </para> + +<para +>Gran cantidad de código se preocupaba de la forma de hacer la interacción entre «los objetos SynthModule» y «el interfaz <acronym +>CORBA</acronym +>» de forma natural, pero no lo era, ya que <acronym +>CORBA</acronym +> no sabía nada de transmisiones. &MCOP; sí. Eche un vistazo al código (algo como <filename +>simplesoundserver_impl.cc</filename +>). ¡Mucho mejor! Las transmisiones se pueden declarar en el interfaz de los módulos, y se pueden implementar de forma natural. </para> + +<para +>Nadie lo puede negar. Una de las razones por las que escribí &MCOP; fue la velocidad. Aquí están los argumentos por los que &MCOP; fue definitivamente más rápido que &DCOP; (incluso sin mostrar imágenes). </para> + + +<para +>Una llamada en &MCOP; tendrá una cabecera con seis «long». Esto es: </para> + +<itemizedlist> +<listitem +><para +>Código de «MCOP».</para +></listitem> +<listitem +><para +>Tipo de mensaje (llamada).</para +></listitem> +<listitem +><para +>Tamaño de la solicitud en bytes.</para +></listitem> +<listitem +><para +>ID de la solicitud.</para +></listitem> +<listitem +><para +>ID del objeto objetivo.</para +></listitem> +<listitem +><para +>ID del método objetivo.</para +></listitem> +</itemizedlist> + +<para +>A continuación siguen los parámetros. Tenga en cuenta que la decodificación de esto es extremadamente rápido. Puede utilizar tablas de búsqueda para encontrar el objeto y la función de decodificación del método, lo que significa que la complejidad es O(1) (tardará la misma cantidad de tiempo, independientemente de cuántos objetos estén vivos, o cuántas funciones tengan). </para> + +<para +>Comparando esto con &DCOP;, verá que existen, al menos: </para> + +<itemizedlist> +<listitem +><para +>Una cadena para el objeto de destino - algo como «miCalculadora».</para +></listitem +> +<listitem +><para +>Una cadena como «incluirNumero(int,int)» para especificar el método.</para +></listitem> +<listitem +><para +>Algunos protocolos de información más añadidos por libICE, y otros específicos de DCOP, no lo se.</para +></listitem> +</itemizedlist> + +<para +>Esto es mucho más complicado de decodificar, puesto que necesitará procesar la cadena, buscar la función, &etc;. </para> + +<para +>En &DCOP;, todas las solicitudes se ejecutan a través de un servidor (<application +>DCOPServer</application +>), lo que significa, que el proceso de una invocación síncrona se parece a esto: </para> + +<itemizedlist> +<listitem> +<para +>El proceso cliente envía una llamada. </para> +</listitem> + +<listitem> +<para +>El <application +>DCOPServer</application +> (hombre-en-el-medio) recibe la llamada y mira dónde necesita ir, y la envía al servidor «real». </para> +</listitem +> + +<listitem> +<para +>El proceso servidor recibe la llamada, realiza la petición y envía el resultado. </para> +</listitem> + +<listitem> +<para +>El <application +>DCOPServer</application +> (hombre-en-el-medio) recibe el resultado y ... lo envía al cliente. </para> +</listitem> + +<listitem> +<para +>El cliente descodifica la respuesta. </para> +</listitem> +</itemizedlist> + +<para +>En &MCOP;, la misma llamada se parece a esto: </para> + +<itemizedlist> +<listitem> +<para +>El proceso cliente envía una llamada. </para> +</listitem> + +<listitem> +<para +>El proceso servidor recibe la llamada, realiza la petición y envía el resultado. </para> +</listitem> + +<listitem> +<para +>El cliente descodifica la respuesta. </para> +</listitem> +</itemizedlist> + +<para +>Estando ambos correctamente implementados, la estrategia punto-a-punto de &MCOP; debería ser dos veces más rápida que la estrategia hombre-en-el-medio de &DCOP;. Fíjese que sin embargo que hay por supuesto razones para escojer la estrategia &DCOP;, como por ejemplo: si tiene 20 aplicaciones ejecutándose, y cada aplicación está hablando a cada aplicación, necesitará 20 conexiones con &DCOP;, y 200 con &MCOP;. Sin embargo en el caso multimedia, esto se supone que no es una configuración usual. </para> + +<para +>Intenté comparar &MCOP; y &DCOP;, haciendo una llamada como añadir dos números. Modifique testdcop para conseguir esto. Sin embargo, la prueba no fue lo suficientemente precisa por parte de &DCOP;. Llamé el método en el mismo proceso que hizo la llamada para &DCOP;, y no podrá librarse de un mensaje de depuración, por ello utilicé la redirección de la salida. </para> + +<para +>La prueba solo utilizó un objeto y una función, esperando que los resultados de &DCOP; se redujesen con más objetos y funciones, mientras que los resultados de &MCOP; fueran los mismos. El proceso <application +>dcopserver</application +> tampoco estaba conectada a otras aplicaciones, ya que si estuviera conectado con otras aplicaciones, el rendimiento del enrutado disminuiría. </para> + +<para +>El resultado obtenido fue que mientras con &DCOP; obtuve más de 2.000 llamadas por segundo, con &MCOP; conseguí más de 8.000 llamadas por segundo. Esto da como resultado un factor de 4. Sé que &MCOP; no está afinado al máximo posible todavía (Comparación: <acronym +>CORBA</acronym +>, implementado con mico, hace entre 1.000 y 1.500 llamadas por segundo). </para> + +<para +>Si desea datos más «elaborados», piense en escribir alguna pequeña aplicación a medida para &DCOP; y envíemela. </para> + +<para +><acronym +>CORBA</acronym +> tiene una interesante funcionalidad que permite utilizar objetos que implementó una vez, como «procesos separados del servidor», o como «biblioteca». Puede utilizar el mismo código para hacerlo, y <acronym +>CORBA</acronym +> decidirá hacerlo de forma transparente. Con &DCOP;, no se ha intentado ésto, y está lejos de ser posible realmente. </para> + +<para +>&MCOP; por otra parte debería soportar ésto desde el principio. Por eso podrá ejecutar un efecto dentro de &artsd;. Pero si hace esto con un editor de ondas, podrá seleccionar ejecutar el mismo efecto dentro de su espacio de proceso también. </para> + +<para +>Mientras que &DCOP; no es más que una forma de comunicación entre aplicaciones, &MCOP; es también una forma de comunicarse dentro de las aplicaciones. Esto es especialmente importante para la transmisión multimedia (puede ejecutar múltiples objetos &MCOP; de forma paralela, para resolver una tarea multimedia en su aplicación). </para> + +<para +>Aunque &MCOP; no hace esto actualmente, las posibilidades están abiertas a la implementación de funcionalidades de calidad de servicio. Algo como «este evento &MIDI; es extremadamente importante en comparación con esta llamada». O algo como «necesito llegar puntual». </para> + +<para +>Por otro lado, la transferencia se puede integrar en el protocolo &MCOP; sin problemas, y ser combinada con elementos <acronym +>QoS</acronym +>. Dado que el protocolo puede cambiarse, la transferencia &MCOP; no debería ser tan lenta como la transmisión convencional <acronym +>TCP</acronym +>, pero: es más fácil y consistente de utilizar. </para> + +<para +>No es necesario basar una plataforma multimedia en &Qt;. Una vez decidido ésto, y utilizando la serialización y otras funcionalidades de &Qt;, se podría concluir fácilmente en una plataforma solo-&Qt; (e incluso solo-&kde;). Quiero decir: tan pronto como vea a GNOME utilizando &DCOP;, o quizá algo similar, comprobaré si estaba equivocado. </para> + +<para +>Como &DCOP; no sabe nada sobre los tipos de datos que envía, podría utilizar &DCOP; sin utilizar &Qt;, veamos el uso diario que se hace de &kde;: la gente envía tipos como <classname +>QString</classname +>, <classname +>QRect</classname +>, <classname +>QPixmap</classname +>, <classname +>QCString</classname +>, ..., de un lado para otro. Esto utiliza la serialización &Qt;. Por eso si alguien elige soportar &DCOP; en un programa GNOME, debería utilizar tipos <classname +>QString</classname +>,... (aunque no lo haga de facto), y emular la forma en que &Qt; realiza la transmisión, o podría enviar otros tipos de cadena, imágenes y rectángulos, lo que dejaría de ser interoperativo. </para> + +<para +>Bueno, sea como fuere, &arts; siempre intentó funcionar con o sin &kde;, con o sin &Qt;, con o sin X11, y quizá incluso con o sin &Linux; (y no ha habido problemas con la gente que lo ha portado a un popular sistema operativo no libre). </para> + +<para +>Mi posición es que los componentes no-&GUI; deberían ser escritos independientemente del &GUI;, para que puedan ser compartidos con tantos desarrolladores (u usuarios) como sea posible. </para> + +<para +>Es obvio que la utilización de dos protocolos <acronym +>IPC</acronym +> puede provocar inconvenientes. Incluso más, si ninguno de ellos es estándar. Sin embargo, estas razones no son suficientes para cambiar a &DCOP;. Si existe un interés significativo para encontrar una forma de unir los dos, perfecto, lo intentaremos. Incluso intentaré hacer que &MCOP; hable <acronym +>IIOP</acronym +>, y tendremos un <acronym +>ORB</acronym +> <acronym +>CORBA</acronym +> ;). </para> + +<para +>He hablado con Matthias Ettrich un poquito sobre el futuro de los dos protocolos, y hemos visto como podrían ir las cosas. Por ejemplo, &MCOP; podría manejar la comunicación del mensaje en &DCOP;, colocando los protocolos un poco más juntos entre sí. </para> + +<para +>Se pueden tomar varias soluciones: </para> + +<itemizedlist> +<listitem> +<para +>Escribir una pasarela &MCOP; - &DCOP; (sería posible, y haría posible la interoperatividad). Nota: Si desea trabajar en ello debe tener en cuenta que es un prototipo experimental. </para> +</listitem> + +<listitem> +<para +>Integrar todo lo que los usuarios esperan de &DCOP; en &MCOP;, y utilizar solo &MCOP; - también se podría añadir una «opción-intermedia» a &MCOP; ;). </para> +</listitem> + +<listitem> +<para +>Basar &DCOP; en &MCOP; en lugar de en libICE, y comenzar a integrar lentamente las cosas. </para> +</listitem> +</itemizedlist> + +<para +>Sin embargo, puede no ser la peor posibilidad utilizar cada protocolo para aquello para lo que fue creado (existen grandes diferencias en los objetivos de diseño), y no intentar juntarlos en uno. </para> + +</sect1> +</chapter> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/midi.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/midi.docbook new file mode 100644 index 00000000000..6ceb60f0aa7 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/midi.docbook @@ -0,0 +1,510 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<chapter id="midi"> +<title +>&MIDI;</title> + +<sect1 id="midi-overview"> +<title +>Introducción</title> + +<!-- what-to-say-here: aRts has three roles + * moving midi events around between applications + * abstracting the hardware + * synthesizer --> + +<para +>El soporte de &MIDI; en &arts; puede hacer una serie de cosas. La primera de todas, permite la <emphasis +>comunicación</emphasis +> entre diferentes elementos de software que producen o consumen eventos &MIDI;. Si, por ejemplo, usted tiene un secuenciador y un generador de muestras que son compatibles con &arts;, &arts; puede enviar los eventos &MIDI; desde el secuenciador al generador de muestras. </para> + +<para +>Por otro lado, &arts; también puede ayudar a las aplicaciones a <emphasis +>interaccionar con el hardware</emphasis +>. Si un elemento de software (por ejemplo, el generador de muestras) trabaja con &arts;, podrá recibir los eventos &MIDI; desde un teclado externo. </para> + +<para +>Por último, &arts; es un gran <emphasis +>sintetizador modular</emphasis +>. Está diseñado para ser exactamente eso. Así que puede construir instrumentos a partir de pequeños módulos utilizando artsbuilder, y después utilizar esos instrumentos para componer o reproducir música. Síntesis no tiene por qué significar síntesis pura, hay módulos que se pueden utilizar para reproducir muestras. Así que &arts; puede ser un generador de muestras, un sintetizador, etc., y al ser totalmente modular, es muy fácil de extender, muy sencillo para experimentar con él, potente y flexible. </para> +</sect1> + +<sect1 id="midi-manager"> +<title +>El administrador &MIDI;</title> +<!-- what-to-say-here: + * how to use artscontrol - view midimanager + * what does autorestore do? (not yet implemented - so not yet documented) --> + +<para +>El componente central en &arts; que mantiene el registro de qué aplicaciones están conectadas y cómo se deben intercambiar los eventos midi, es el administrador midi. Para verlo o influir en su comportamiento, abra artscontrol. Después seleccione en el menú la opción <menuchoice +><guilabel +>Ver</guilabel +><guilabel +>Administrador MIDI</guilabel +> </menuchoice +>. </para> + +<para +>En la parte izquierda, verá <guilabel +>Entradas MIDI</guilabel +>. En ese lugar se mostrarán todos los objetos que produzcan eventos &MIDI;, como un puerto &MIDI; externo que envía datos a un teclado &MIDI; conectado, un secuenciador que reproduce una canción, etc. En el lado derecho, verá <guilabel +>Salidas MIDI</guilabel +>. En ese recuadro estarán todos los elementos que consumen eventos &MIDI;, como un generador de muestras simulado (por software), o el puerto &MIDI; externo donde se puede conectar un generador de muestras por hardware. Las nuevas aplicaciones como secuenciadores, etc., se registrarán a sí mismas, así que las listas van cambiando con el tiempo. </para> + +<para +>Es posible conectar las entradas con las salidas seleccionando la entrada en la lista izquierda y la salida en la derecha y pulsando sobre el botón <guilabel +>Conectar</guilabel +>. <guilabel +>Desconectar</guilabel +> funciona de la misma manera. Verá las conexiones como pequeñas líneas, entre las entradas y las salidas, en el centro de la ventana. Tenga en cuenta que un mismo origen se puede conectar con varios destinos (y viceversa). </para> + +<para +>Los programas (como el secuenciador Brahms) se añadirán automáticamente al iniciarse y se eliminarán de la lista al cerrarse. Pero también se pueden añadir nuevos elementos utilizando el menú <guilabel +>Añadir</guilabel +>: </para> + +<variablelist> +<varlistentry> +<term +><guimenuitem +>Puerto MIDI del sistema (OSS)</guimenuitem +></term> +<listitem> +<para +>Esto creará un nuevo objeto de &arts; que se comunicará con un puerto midi externo. </para> + +<para +>Como los puertos midi externos pueden tanto enviar como recibir datos, esta opción añadirá una entrada y una salida. Bajo &Linux;, debería tener su tarjeta instalada bajo un controlador <acronym +>OSS</acronym +> (o <acronym +>OSS</acronym +>/Free, que viene incluído en el núcleo de &Linux;) o <acronym +>ALSA</acronym +>, para hacer que funcione. Se le pedirá el nombre del dispositivo. Normalmente será <filename class="devicefile" +>/dev/midi</filename +> o <filename class="devicefile" +>/dev/midi00</filename +>. </para> + +<para +>Sin embargo, si tiene más de un dispositivo &MIDI; o un controlador de retorno de &MIDI; instalado, puede haber más opciones. Para obtener información sobre sus puertos midi, inicie el &kcontrolcenter;, y seleccione <menuchoice +><guilabel +>Información</guilabel +> <guilabel +>Sonido</guilabel +></menuchoice +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Salida de síntesis MIDI de aRts</guimenuitem +></term> +<listitem> +<para +>Esto añadirá una nueva salida &MIDI; a un instrumento de síntesis de &arts;. Si elige el elemento del menú, se abrirá un diálogo que le permitirá escoger un instrumento. Puede crear nuevos instrumentos utilizando artsbuilder. Podrá elegir cualquiera de los archivos <literal role="extension" +>.arts</literal +> cuyo nombre comience por <filename +>instrument_</filename +>. </para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="brahms"> +<title +>Uso de &arts; y Brahms</title> + +<para +>En realidad, ponerlo en funcionamiento es muy sencillo. Se necesita una versión de &brahms; preparada para &kde; 2.1, que se puede encontrar en el módulo <acronym +>CVS</acronym +> de <literal +>kmusic</literal +>. También hay información de cómo obtener &brahms; en la <ulink url="http://www.arts-project.org/" +>página web de aRts</ulink +>, en la sección de descargas. </para> + +<para +>Al iniciarlo, se mostrará el administrador &MIDI;. Si desea realizar síntesis, añada simplemente un instrumento de síntesis &MIDI; a través de <menuchoice +><guilabel +>Añadir</guilabel +><guilabel +>Salida de síntesis MIDI de aRts</guilabel +></menuchoice +>. </para> + +<para +>Elija un instrumento (por ejemplo, <guilabel +>organ2</guilabel +>). Conéctelos utilizando el botón <guilabel +>Conectar</guilabel +>. Por último, puede comenzar a componer en &brahms;, y la salida será sintetizada por &arts;. </para> + +<para +>En general, es una buena idea mantener la ventana de &artscontrol; abierta, y comprobar que el volumen no es excesivamente alto (la calidad empeora cuando las barras alcanzan el límite superior). Ahora puede comenzar a trabajar en una nueva canción con &arts;, y si ya ha terminado, puede publicarla en la página web aRts-project.org. </para> + +<!-- TODO: how to do more than one instrument in Brahms (hm, not implemented + yet, not documented yet), how to use samples, mapping and so on. These + things need to be implemented, too. --> + +</sect1> + +<sect1 id="midisend"> +<title +>midisend</title> + +<para +><command +>midisend</command +> es una pequeña aplicación que le permite enviar eventos &MIDI; desde la línea de órdenes. Se registrará como un cliente como cualquiera de las otras aplicaciones. La manera más sencilla de utilizarlo es <screen +><prompt +>%</prompt +> <userinput +><command +>midisend</command +> <option +>-f</option +> <parameter +><replaceable +>/dev/midi00</replaceable +></parameter +></userinput +> </screen +> que hará más o menos lo mismo que añadir un puerto &MIDI; del sistema en &artscontrol;. (No del todo, ya que <command +>midisend</command +> sólo envía eventos). La diferencia es que resulta sencillo, por ejemplo, iniciar <command +>midisend</command +> en varios ordenadores (y, de esa manera, utilizar la transparencia de red). </para> + +<para +>También es posible hacer que <command +>midisend</command +> envíe datos desde <filename class="devicefile" +>stdin</filename +>, lo que se puede utilizar para reenviar información desde programas no compatibles con &arts;, de esta manera: <screen +><prompt +>%</prompt +> <userinput +><command +><replaceable +>aplicación_que_produce_eventos_midi_en_stdout</replaceable +></command +> | <command +>midisend</command +> <option +>-f</option +> <option +><replaceable +>-</replaceable +></option +></userinput +></screen> +<!-- TODO: document all options --> +</para> + +</sect1> + +<sect1 id="midi-creating-instruments"> +<title +>Construcción de instrumentos</title> + +<para +>La forma en la que &arts; hace síntesis midi es la siguiente: hay unas estructuras que tienen puertos de entrada, de donde se obtiene la frecuencia, la velocidad (volumen) y un parámetro que indica si la nota está aún pulsada. La estructura debe ahora sintetizar exactamente esa nota con ese volumen, y reaccionar en el parámetro de pulsación (donde 'pressed' = 1 significa que el usuario aún mantiene la tecla pulsado y 'pressed' = 0 significa que ya la ha soltado). </para> + +<para +>Cuando lleguen los eventos &MIDI;, &arts; creará nuevas estructuras para las notas según sea vayan necesitando, dándoles los parámetros, y eliminándolas una vez haya terminado su cometido. </para> + +<para +>Para crear un utilizar una de esas estructuras, debe hacer lo siguiente: </para> + +<itemizedlist> +<listitem> +<para +>Para comenzar, la forma más cómoda es abrir <filename +>template_Instrument.arts</filename +> en &arts-builder;. </para> + +<para +>Puede hacerlo usando <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Abrir ejemplo...</guimenuitem +></menuchoice +> y escogiendo <guimenuitem +>template_Instrument</guimenuitem +> en el selector de archivos. Ésto proporcionará una estructura vacía con los parámetros requeridos, que solo necesitarán «rellenarse». </para> +</listitem> + +<listitem> +<para +>Para procesar la falta de parámetros, es conveniente utilizar Synth_ENVELOPE_ADSR, o, en caso de reproducir alguna onda de percusión, hágalo sin más, ignorando los parámetros que falten. </para> +</listitem> + +<listitem> +<para +>La propia estructura debería indicar cuándo ya no es necesaria a través de la salida «done». Si done vale <returnvalue +>1</returnvalue +>, &arts; asume que se puede borrar la estructura. El envoltorio ADSR proporciona un parámetro que llamado «done», no siendo necesario conectarse a la salida de la estructura. </para> +</listitem> + +<listitem> +<para +>Debe renombrar su estructura a algún nombre que empiece por <filename +>instrument_</filename +>, como <filename +>instrument_piano.arts</filename +>. Debe guardar el archivo bajo el mismo nombre en su carpeta <filename class="directory" +>$<envar +>HOME</envar +>/arts/structures</filename +> (que es dónde artsbuilder guarda los archivos normalmente). </para> +</listitem> + +<listitem> +<para +>Finalmente, una vez lo haya guardado será capaz de usarlo con &artscontrol; en el administrador &MIDI;.</para> +</listitem> + +<listitem> +<para +>Oh, y por supuesto su estructura debería reproducir los datos de audio que genera para las salidas izquierda y derecha de la estructura, que se reproducirán entonces a través del administrador de audio (puede verlo en &artscontrol;), por lo que finalmente podrá oírlo (o postprocesarlo con efectos). </para> +</listitem> +</itemizedlist> + +<para +>Un buen método para aprender cómo hacer instrumentos es abrir un instrumento existente a través de <menuchoice +><guilabel +>Archivo</guilabel +><guilabel +>Abrir ejemplo </guilabel +></menuchoice +> y mirar cómo funciona ;) </para> +</sect1> + +<sect1 id="mapped-instruments"> +<title +>Instrumentos mapeados</title> + +<para +>Los instrumentos mapeados son instrumentos que se comportan de forma diferente dependiendo del tono, del programa, del canal o de la velocidad. Puede, por ejemplo, construir un piano de 5 octavas, utilizando una muestra para cada octava (desplazamiento del tono correspondiente). Esto suena mucho mejor que utilizar una única muestra. </para> + +<para +>Puede también construir un mapa de tambores, que reproduce una muestra de tambor específica por cada tecla. </para> + +<para +>Finalmente, es muy útil si coloca varios sonidos en un instrumento mapeado en diferentes programas. De esta manera, puede usar su secuenciador, teclado externo u otra fuente &MIDI; para cambiar entre los sonidos sin tener que tocar &arts; mientras trabaja. </para> + +<para +>Un buen ejemplo de esto es el instrumento <filename +>arts_all</filename +>, que incluye todos los instrumentos que vienen con &arts; en un solo mapa. De esta manera, solo necesita establecerse una vez en &artscontrol; para usar este «instrumento», y así, puede componer una cancion entera en un secuenciador sin preocuparse de &arts;. ¿Necesita otro sonido? Simplemente cambie el programa del secuenciador, y &arts; le dará otro sonido. </para> + +<para +>Crear estos mapas es muy fácil. Sólo necesita crear un archivo de texto y escribir reglas similares a éstas: </para> + +<programlisting +>ON <replaceable +>[ condiciones ...]</replaceable +> DO structure=<replaceable +>estructura</replaceable +>.arts +</programlisting> + +<para +>Las condiciones pueden ser una o más de entre las siguientes: </para> + +<variablelist> + +<varlistentry> +<term +><option +>pitch</option +></term> + +<listitem> +<para +>El tono es lo que se reproduce. Debería utilizar esto si desea dividir su instrumento dependiendo del tono. En nuestros ejemplos iniciales, un piano que usa diferentes muestras para diferentes octavas debería utilizar esta condición. Puede especificar un solo tono, de forma similar a <userinput +><option +>pitch</option +>=<parameter +>62</parameter +></userinput +> o un rango de tonos, como <userinput +><option +>pitch</option +>=<parameter +>60</parameter +>-<parameter +>72</parameter +></userinput +>. Los posibles tonos se encuentran entre <parameter +>0</parameter +> y <parameter +>127</parameter +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>program</option +></term> +<listitem> +<para +>El programa está activo en el canal al que se envía la nota. Normalmente, los secuenciadores le permiten seleccionar el «instrumento» a través de la configuración del programa. Están permitidos los programas sencillos o los rangos, esto es, <userinput +><option +>program</option +>=<parameter +>3</parameter +></userinput +> o <userinput +><option +>program</option +>=<parameter +>3</parameter +>-<parameter +>6</parameter +></userinput +>. Los posibles programas se encuentran entre <parameter +>0</parameter +> y <parameter +>127</parameter +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>channel</option +></term> +<listitem> +<para +>El canal al que se enviará la nota. Están permitidos los canales simples o los rangos, esto es <userinput +><option +>channel</option +>=<parameter +>0</parameter +></userinput +> o <userinput +><option +>channel</option +>=<parameter +>0</parameter +>-<parameter +>8</parameter +></userinput +>. Los posibles canales están entre <parameter +>0</parameter +> y <parameter +>15</parameter +>. </para> +</listitem> + +</varlistentry> +<varlistentry> +<term +><option +>velocity</option +></term> +<listitem> +<para +>La velocidad (volumen) que tiene la nota. Se permiten velocidades simples (¿quién querría usar esto?) o los rangos, esto es, <userinput +><option +>velocity</option +>=<parameter +>127</parameter +></userinput +> o <userinput +><option +>velocity</option +>=<parameter +>64</parameter +>-<parameter +>127</parameter +></userinput +>. Las posibles velocidades están entre <parameter +>0</parameter +> y <parameter +>127</parameter +>. </para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Un ejemplo completo de un mapa puede ser (esto aparece en el actual <filename +>instrument_arts_all.arts-map</filename +>): </para> + +<programlisting +>ON program=0 DO structure=instrument_tri.arts +ON program=1 DO structure=instrument_organ2.arts +ON program=2 DO structure=instrument_slide1.arts +ON program=3 DO structure=instrument_square.arts +ON program=4 DO structure=instrument_neworgan.arts +ON program=5 DO structure=instrument_nokind.arts +ON program=6 DO structure=instrument_full_square.arts +ON program=7 DO structure=instrument_simple_sin.arts +ON program=8 DO structure=instrument_simple_square.arts +ON program=9 DO structure=instrument_simple_tri.arts +ON program=10 DO structure=instrument_slide.arts +ON program=11 pitch=60 DO structure=instrument_deepdrum.arts +ON program=11 pitch=61 DO structure=instrument_chirpdrum.arts +</programlisting> + +<para +>Como puede ver, la estructura elegida depende del programa. En el programa 11, podrá ver un «mapa de batería» (con dos entradas), que reproducirá un «bombo» en C-5 (pitch=60), y un «platillo» en C#5 (pitch=61). </para> + +<para +>Para hacer que los archivos de mapa aparezcan automáticamente en &artscontrol; como elección para el instrumento, deben llamarse <filename +>instrument_<replaceable +>algo</replaceable +>.arts-map</filename +> y residir en su carpeta, bajo <filename class="directory" +>$<envar +>HOME</envar +>/arts/structures</filename +>, o en la carpeta &kde; bajo <filename class="directory" +>$<envar +>KDEDIR</envar +> usr/local/kde/share/apps/artsbuilder/examples</filename +>. Las estructuras que usa el mapa pueden darse con una ruta absoluta, o con una ruta relativa a la carpeta en la que se encuentra. </para> + +<para +>Extender el mapa arts_all e incluso hacer un mapa completo general de &MIDI; para &arts; es buena idea para hacer &arts; sencillo de utilizar tras instalarlo. Por favor, contribuya creando instrumentos interesantes que puedan ser incluídos en futuras versiones de &arts;. </para> +</sect1> + +<!-- TODO: Maybe helpful + * using an external keyboard + * loopback midi device + +<sect1 id="quick-start"> +<title +>Quick Start</title> + +</sect1> +<sect1 id="internal-details"> +<title +>More Internal Details</title> + +</sect1> + +<sect1 id="other-considerations"> +<title +>Other Considerations</title> + +</sect1> +--> + +</chapter> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/midiintro.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/midiintro.docbook new file mode 100644 index 00000000000..13a1789107c --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/midiintro.docbook @@ -0,0 +1,16 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE appendix PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<appendix id="midi-introduction"> + +<title +>Introducción al <acronym +>MIDI</acronym +></title> + +<para +>Pendiente de escribir. </para> + +</appendix> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/modules.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/modules.docbook new file mode 100644 index 00000000000..df80735c1c7 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/modules.docbook @@ -0,0 +1,1317 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<chapter id="arts-modules"> +<title +>módulos &arts;</title> + + <sect1 id="modules-introduction"> +<title +>Introducción</title> + +<para +>Este capítulo describe todos los módulos estándar de &arts;. Una de las características más potentes de &arts;, es que los módulos se pueden conectar juntos en estructuras para implementar nuevas funciones como efectos e instrumentos. </para> + +<para +>Los módulos se dividen en dos categorías. Los módulos de síntesis se usan para implementar las «tuberías» que manipulan las transmisiones de datos multimedia para añadir nuevos efectos, instrumentos, mezcladores y aplicaciones. Los módulos visuales le permiten proporcionar una interfaz gráfica de usuario para controlar las estructuras de sonido que se construyen con los módulos de síntesis. </para> + +</sect1> + +<sect1 id="synth-modules-reference"> +<title +>Referencia de módulos de síntesis</title> + + +<sect2 id="mcat-synth-arithmetic-mixing"> +<title +>Aritmética + Mezclas</title> + + + +<sect3 id="mref-synth-add-sect"> +<title +>Synth_ADD</title> +<anchor id="mref-synth-add"/> + +<mediaobject> +<imageobject> +<imagedata fileref="images/Synth_ADD.png" format="PNG"/></imageobject> +<textobject +><phrase +>Synth_ADD</phrase +></textobject> +</mediaobject> + +<para +>Añade dos señales. </para> + +</sect3> + +<sect3 id="mref-synth-mul-sect"> +<title +>Synth_MUL</title> +<anchor id="mref-synth-mul"/> + +<mediaobject> +<imageobject> +<imagedata fileref="images/Synth_MUL.png" format="PNG"/></imageobject> +<textobject +><phrase +>Synth_MUL</phrase +></textobject> +</mediaobject> + +<para +>Multiplica una señal por un factor. Puede usarlo para reducir señales (0 < factor < 1), aumentarlas (factor > 1) o invertirlas (factor < 0). Fíjese que el factor debe ser una señal y no una constante (⪚ una envoltura o una señal real). </para> + +</sect3> + +<sect3 id="mref-synth-div-sect"> +<title +>Synth_DIV</title> +<anchor id="mref-synth-div"/> + +<mediaobject> +<imageobject> +<imagedata fileref="images/Synth_DIV.png" format="PNG"/></imageobject> +<textobject +><phrase +>Synth_DIV</phrase +></textobject> +</mediaobject> + +<para +>Divide una señal por un factor. Puede utilizarlo para dividir una señal por otra. O cambia valor1 a 1 y obtendrá un valor recíproco de valor2 como valor de salida. Tenga cuidado de que valor2 nunca alcance 0 o tendrá problemas con las divisiones por cero. </para> + +</sect3> + +<sect3 id="mref-synth-multi-add-sect"> +<title +>Synth_MULTI_ADD</title> +<anchor id="mref-synth-multi-add"/> + +<mediaobject> +<imageobject> +<imagedata fileref="images/Synth_MULTI_ADD.png" + format="PNG"/></imageobject> +<textobject +><phrase +>Synth_MULTI_ADD</phrase +></textobject> +</mediaobject> + +<para +>Añade un número arbitrario de señales. Si necesita sumar las ondas producidas por cuatro osciladores diferentes, puede por ejemplo, conectar todas sus salidas a un módulo Synt_MULTI_ADD. Ésto es más eficiente que usar tres módulos Synth_ADD. </para> + +</sect3> + +<sect3 id="mref-synth-xfade-sect"> +<title +>Synth_XFADE</title> +<anchor id="mref-synth-xfade"/> + +<mediaobject> +<imageobject +><imagedata fileref="images/Synth_XFADE.png" format="PNG"/> +</imageobject> +<textobject +><phrase +>Synth_XFADE</phrase +></textobject> +</mediaobject> + +<para +>Cruza dos señales. Si el porcentaje de entrada es -1, sólo se escucha la señal izquierda y si es 1, sólo se escucha la señal derecha. Cuando es 0, ambas señales se escuchan con el mismo volumen. </para> + +<para +>Permite asegurar que su señal permanezca en un rango bien definido. Si tiene dos señales entre -1 y 1 antes del fundido cruzado mantendrán el mismo rango después de él. </para> +</sect3> + +<sect3 id="mref-synth-autopanner-sect"> +<title +>Synth_AUTOPANNER</title> +<anchor id="mref-synth-autopanner"/> + +<para +>Es el opuesto al fundido. Toma una señal mono y la divide en una señal estéreo: Se utiliza para envolver la señal de entrada entre las salidas izquierda y derecha. Esto hace mezclas más animadas. Una aplicación estándar podría ser una guitarra o un sonido brusco. </para> + +<para +>Conecte un <acronym +>LFO</acronym +>, a una onda sinusoidal o de diente de sierra, por ejemplo, 'inlfo', y seleccione una frecuencia ente 0,1 y 5Hz para obtener un efecto tradicional o más para los efectos especiales. </para> + +</sect3> + +</sect2> + +<sect2 id="mcat-synth-busses"> +<title +>Buses</title> + +<sect3 id="mref-synth-bus-uplink-sect"> +<title +>Synth_BUS_UPLINK</title> +<anchor id="mref-synth-bus-uplink"/> + +<mediaobject> +<imageobject +><imagedata fileref="images/Synth_BUS_UPLINK.png" + format="PNG"/> +</imageobject> +<textobject +><phrase +>Synth_BUS_UPLINK</phrase +></textobject> +</mediaobject> + +<para +>Un enlace de subida para un bus. Proporciona las señales izquierda y derecha, y el nombre del bus en el que los datos deberían ir en el puerto del «bus». La señal combinada de todos los enlaces de subida con este nombre aparecerán en cada enlace de bajada de este «bus». </para> +</sect3> + +<sect3 id="mref-synth-bus-downlink-sect"> +<title +>Synth_BUS_DOWNLINK</title> +<anchor id="mref-synth-bus-downlink"/> + +<mediaobject> +<imageobject> +<imagedata fileref="images/Synth_BUS_DOWNLINK.png" + format="PNG"/></imageobject> +<textobject +><phrase +>Synth_BUS_DOWNLINK</phrase +></textobject> +</mediaobject> + +<para +>Obtiene (la suma de) todos los datos y los coloca en un determinado bus (con el nombre que especificó en el puerto del «bus»). </para> +</sect3> + +</sect2> + +<!-- TODO AFTER KDE2.1: move freeverb into delays, and rename category to + Delays & reverbs --> + +<sect2 id="mcat-synth-delays"> +<title +>Retrasos</title> + + + +<sect3 id="mref-synth-delay-sect"> +<title +>Synth_DELAY</title> +<anchor id="mref-synth-delay"/> + +<mediaobject> +<imageobject +><imagedata fileref="images/Synth_DELAY.png" + format="PNG"/></imageobject +></mediaobject> + +<para +>Retrasa la señal entrante durante una cantidad de tiempo. La especificación del tiempo debe estar entre 0 y maxdelay para un retraso entre 0 y maxdelay segundos. </para> + +<para +>Este tipo de retraso <emphasis +>no se utilizará</emphasis +> en estructuras de retroalimentación. Esto es debido a que se trata de una variable de retraso. Puede modificar su longitud mientras se está ejecutando, e incluso asignarle un valor inferior a 0. Pero como en una estructura de retroalimentación la propia salida se necesita para calcular las siguientes muestras, un retraso cuyo valor caiga a cero puede producir una situación de parada. </para> + +<para +>Utilice CDELAY en esta configuración, quizá combinando una pequeña constante de retraso (de 0,001 segundos) con un retraso flexible. </para> + +<para +>También puede combinar CDELAY y un DELAY para conseguir un retraso de tamaño variable con un valor mínimo en un bucle de retroalimentación. Asegúrese de incluir un CDELAY. </para> + +</sect3> + +<sect3 id="mref-synth-cdelay-sect"> +<title +>Synth_CDELAY</title> +<anchor id="mref-synth-cdelay"/> + +<mediaobject> +<imageobject +><imagedata fileref="images/Synth_CDELAY.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_CDELAY</phrase +></textobject> +</mediaobject> + +<para +>Retrasa la señal de entrada durante una cantidad de tiempo. El tiempo especificado debe ser mayor que 0 para un retraso de 0 segundos o más. El retraso es constante durante los cálculos, lo que significa que no se puede modificar. </para> + +<para +>Esto ahorra tiempo de computación sino se hace ninguna interpolación, y es práctico para estructuras recursivas. Vea la descripción anterior (Synth_DELAY). </para> + +</sect3> + +</sect2> + +<sect2 id="mcat-synth-envelopes"> +<title +>Envoltorios</title> + + + +<sect3 id="mref-synth-envelope-adsr-sect"> +<title +>Synth_ENVELOPE_ADSR</title> +<anchor id="mref-synth-envelope-adsr"/> + +<mediaobject> +<imageobject +><imagedata fileref="images/Synth_ENVELOPE_ADSR.png" + format="PNG"/></imageobject> +<textobject +><phrase +>Synth_ENVELOPE_ADSR</phrase +></textobject> +</mediaobject> + +<para +>Es un envoltorio <acronym +>ADSR</acronym +> clásico lo que significa que puede especificar: </para> + +<variablelist> +<varlistentry> +<term +>active</term> +<listitem> +<para +>Si la nota está siendo pulsada en ese momento por el usuario. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>invalue</term> +<listitem> +<para +>La señal de entrada. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>attack</term> +<listitem> +<para +>El tiempo que debe pasar entre que el usuario presiona una nota y la señal alcanza su máxima amplitud (en segundos). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>decay</term> +<listitem> +<para +>El tiempo que debe pasar entre que la señal alcanza su máxima amplitud y regresa a algún valor constante (en segundos). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>sustain</term> +<listitem> +<para +>El valor constante al que se mantiene la señal más tarde, hasta que el usuario suelte la nota. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>release</term> +<listitem> +<para +>El tiempo que debe pasar entre que el usuario suelta una nota hasta que la señal es reducida hasta cero (en segundos). </para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Podrá escalar la señal en el valor de salida. Si el envoltorio <acronym +>ASDR</acronym +> ha finalizado, valdrá 1. Puede utilizar ésto para proporcionar una salida «hecho» para un instrumento (que hará que la estructura del instrumento sea borrada por el enrutador de objetos &MIDI; después de que la fase de inicio haya finalizado). </para> + +</sect3> + +<sect3 id="mref-synth-pscale-sect"> +<title +>Synth_PSCALE</title> +<anchor id="mref-synth-pscale"/> + +<mediaobject> +<imageobject +><imagedata fileref="images/Synth_PSCALE.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_PSCALE</phrase +></textobject> +</mediaobject> + +<para +>El módulo Synth_PSCALE escalará el flujo de audio que se dirige a través de él desde volumen 0 (silencio) a 1 (sonido original) volviendo a 0 (silencio), según la posición (la posición se obtiene desde Synth_SEQUENCE). La posición donde el pico debe ocurrir puede darse como pos. </para> + +<para +>Ejemplo: Estableciendo top a 0,1 significa que después de que se reproduzca el 10% de la nota, el volumen debe alcanzar el máximo y empezar a decaer después. </para> +</sect3> + +</sect2> + +<sect2 id="mcat-synth-effects"> +<title +>Efectos</title> + +<sect3 id="mref-synth-freeverb-sect"> +<title +>Synth_FREEVERB</title> +<anchor id="mref-synth-freeverb"/> + +<mediaobject> +<imageobject +><imagedata fileref="images/Synth_FREEVERB.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_FREEVERB</phrase +></textobject> +</mediaobject> + +<para +>Es un efecto de reverberación. En la implementación actual, está pensado para pasar una señal estéreo a través del reverberador, y que él -añada- su efecto de reverberación a la señal. </para> + +<note> +<para +>Ésto significa que puede usarse dentro de un StereoEffectStack perfectamente. </para> +</note> + +<para +>La señal de entrada debe conectarse a (inleft, inright), y la señal de salida a (outleft, outright). </para> + +<para +>Los parámetros que puede configurar son: </para> + +<variablelist> +<varlistentry> +<term +>roomsize</term> +<listitem> +<para +>El tamaño de la habitación que la reverberación simula (rango: 0..1, donde 1 es la habitación más grande posible). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>damp</term> +<listitem> +<para +>Especifica un filtro que hace que la habitación simulada absorba las altas frecuencias (rango 0..1, donde 1 significa que la absorción de altas frecuencias es más agresiva). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>wet</term> +<listitem> +<para +>La cantidad de señal de reverberación (esto es, la cantidad de señal que debería ser modificada por los filtros, resultando un sonido «mojado», esto es «sonido reverberado»). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>dry</term> +<listitem> +<para +>La cantidad de señal pura pasada, resultando un eco (o combinado con un retraso) más que un efecto de reverberación (rango: 0..1). </para> +<!-- TODO: do some measurements to show that this documentation -is- correct, +I am not sure if it is echo, or really pure (non-delayed), or multiple delay +or whatever --> +</listitem> +</varlistentry> + +<varlistentry> +<term +>width</term> +<listitem> +<para +>La cantidad de efecto estéreo que el algoritmo de reverberación añade al efecto de reverberación, haciendo que el sonido tenga un estéreo más amplio (rago:0..1). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>mode</term> +<listitem> +<para +>[ PENDIENTE: Creo que si el modo es 1, la reverberación mantiene la imagen actual del sonido, mientras que 0 es la operación normal ] </para> +</listitem> +</varlistentry> +</variablelist> + +</sect3> + +<sect3 id="mref-synth-tremolo-sect"> +<title +>Synth_TREMOLO</title> +<anchor id="mref-synth-tremolo"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_TREMOLO.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_TREMOLO</phrase +></textobject> +</mediaobject> + +<para +>El módulo trémolo modula la amplitud según una onda <acronym +>LFO</acronym +>. Normalmente usaría una onda sinusoidal, pero, ¿por qué limitarse?. Lo que obtiene es un efecto muy intenso que atraviesa muchos arreglos debido a su rango altamente dinámico. El efecto trémolo es aún uno de los efectos favoritos de los guitarristas, aunque ya no es tan popular como en los años 60. </para> + +<para +>[ PENDIENTE: actualmente está implementado como invalue + abs(inlfo) - quizá tendría más sentido implementarlo como invalue * (1+inlfo*profundidad), donde profundidad sería un parámetro entre 0..1 - a decidir después de &kde;2.1. Si tiene algún comentario, envíe un correo a la lista de &arts; ;).] </para> + +</sect3> +<sect3 id="mref-synth-fx-cflanger-sect"> +<title +>Synth_FX_CFLANGER</title> +<anchor id="mref-synth-fx-cflanger"/> + +<mediaobject +><imageobject +><imagedata +fileref="images/Synth_FX_CFLANGER.png" format="PNG"/></imageobject> +<textobject +><phrase +>Synth_FX_CFLANGER</phrase +></textobject> +</mediaobject> + +<para +>Un flanger es un efecto de retraso de tiempo variable. Este módulo se proporciona para hacer más fácil el desarrollo de complejos efectos flanger, el cual contiene el núcleo de un flanger de un canal. </para> + +<para +>Contiene los siguientes puertos:</para> + +<variablelist> +<varlistentry> +<term +>invalue</term> +<listitem> +<para +>La señal que desea procesar. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>lfo</term> +<listitem> +<para +>Preferiblemente una onda sinusoidal que module el tiempo de retraso dentro del flanger (-1 .. 1). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>mintime</term> +<listitem> +<para +>El valor mínimo para un retraso dentro de este efecto en milisegundos. Valores sugeridos: intente utilizar valores como 1 ms. Por favor, utilice valores < 1.000 ms. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>maxtime</term> +<listitem> +<para +>El valor máximo para un retraso dentro de este efecto en milisegundos. Valores sugeridos: intente utilizar valores como 5 ms. Por favor, utilice valores < 1.000 ms. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>outvalue</term> +<listitem> +<para +>La señal de salida. Es importante que mezcle esto con la señal original para obtener el efecto deseado. </para> +</listitem> +</varlistentry> +</variablelist> + +<tip> +<para +>Puede usar esto como base para un efecto de coro. </para> +</tip> + +</sect3> + +</sect2> + +<sect2 id="mcat-synth-filters"> +<title +>Filtros</title> + +<sect3 id="mref-synth-pitch-shift-sect"> +<title +>Synth_PITCH_SHIFT</title> +<anchor id="mref-synth-pitch-shift"/> + +<mediaobject +><imageobject +><imagedata +fileref="images/Synth_PITCH_SHIFT.png" format="PNG"/></imageobject> +<textobject +><phrase +>Synth_PITCH_SHIFT</phrase +></textobject> +</mediaobject> + +<para +>El efecto pitch shifting (desplazamiento del tono) cambia la frecuencia de la señal de entrada sin afectar a la velocidad. Una aplicación para esto es, por ejemplo, cambiar el tono de su voz mientras lo graba (y reproduce) en tiempo real. </para> + +<para +>El parámetro <emphasis +>speed</emphasis +> es la velocidad relativa con la que la señal se reproducirá. Por lo que una speed de dos haría el sonido dos veces más alto (&ie;, una frecuencia de entrada de 440 Hz daría como resultado una señal de salida de 880 Hz). </para> + +<para +>El parámetro <emphasis +>frequency</emphasis +> se usa internamente para cambiar entre diferentes granos de la señal. Es ajustable, y dependiendo de su elección, el desplazamiento del tono sonará más o menos realista para usar según su caso. Un buen valor para empezar es con algo como 5 ó 10. </para> + +</sect3> + +<sect3 id="mref-synth-shelve-cutoff-sect"> +<title +>Synth_SHELVE_CUTOFF</title> +<anchor id="mref-synth-shelve-cutoff"/> + +<mediaobject +><imageobject +><imagedata +fileref="images/Synth_SHELVE_CUTOFF.png" format="PNG"/></imageobject> +<textobject +><phrase +>Synth_SHELVE_CUTOFF</phrase +></textobject> +</mediaobject> + +<para +>Elimina todas las frecuencias por encima de la frecuencia de corte. </para> + +</sect3> + +<sect3 id="mref-synth-brickwall-limiter-sect"> +<title +>Synth_BRICKWALL_LIMITER</title> +<anchor id="mref-synth-brickwall-limiter"/> + +<mediaobject +><imageobject +><imagedata +fileref="images/Synth_BRICKWALL_LIMITER.png" + format="PNG"/></imageobject> +<textobject +><phrase +>Synth_BRICKWALL_LIMITER</phrase +></textobject> +</mediaobject> + +<para +>Este módulo recorta una señal para que se ajuste al rango [-1, 1]. No hace nada para evitar la distorsión que se produce cuando se recortan señales altas. Puede usar ésto como un efecto (por ejemplo, para crear una onda sinusoidal ligeramente cortada). Sin embargo, probablemente sea una buena idea enviar posteriormente la señal a través un filtro de paso bajo, si lo usa, para hacer que suene menos agresivo. </para> +</sect3> + +<sect3 id="mref-synth-std-equalizer-sect"> +<title +>Synth_STD_EQUALIZER</title> +<anchor id="mref-synth-std-equalizer"/> + +<mediaobject +><imageobject +><imagedata +fileref="images/Synth_STD_EQUALIZER.png" format="PNG"/></imageobject> +<textobject +><phrase +>Synth_STD_EQUALIZER</phrase +></textobject> +</mediaobject> + +<para +>Este es un interesante bloque de ecualizador parametrizado. Sus parámetros son: </para> + +<variablelist> +<varlistentry> +<term +>invalue, outvalue</term> +<listitem> +<para +>La señal que se filtrará por el ecualizador. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>low</term> +<listitem> +<para +>Cómo se deben cambiar las bajas frecuencias. El valor es en dB, mientras 0 significa no cambiar las bajas frecuencias, -6 significaría reducirlas 6 dB, y +6 significaría aumentarlas 6 dB. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>mid</term> +<listitem> +<para +>Cómo debe cambiar el ecualizador las frecuencias medias, en dB (mirar abajo). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>high</term> +<listitem> +<para +>Cómo debe cambiar el ecualizador las frecuencias altas, en dB (mirar abajo). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>frequency</term> +<listitem> +<para +>Es la frecuencia central del ecualizador en Hz, las frecuencias medias están alrededor de ese espectro, y las bajas y altas frecuencias por debajo y encima. Fíjese que esa frecuencia no puede ser mayor que la mitad que el ratio de muestreo, normalmente en los 22.050 Hz, y tampoco menor que 1 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>q</term> +<listitem> +<para +>Esto influye en la extensión del espectro central. Debería ser un número positivo > 0. Un valor de uno es razonable, valores más altos de q corresponden a valores más estrechos de espectro de frecuencias intermedias. Valores inferiores a uno se corresponden a un espectro amplio. </para> +</listitem> +</varlistentry> +</variablelist> + +</sect3> + +<sect3 id="mref-synth-rc-sect"> +<title +>Synth_RC</title> +<anchor id="mref-synth-rc"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_RC.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_RC</phrase +></textobject> +</mediaobject> + +<para +>Un filtro por resonancia filtra todas las secuencias alrededor de un determinado pico. Ésto no es una forma práctica de especificar frecuencias intermedias (que no se cortará), ya que la entrada son dos constantes externas, f y b. El código es muy antiguo, de los primeros días de los sintetizadores, y probablemente será reemplazado por un filtro nuevo que tenga como parámetros la frecuencia y la resonancia. </para> + +<para +>Pruebe con algo como b=5, f=5 ó b=10, f=10 ó b=15, f=15. </para> + +</sect3> + +<sect3 id="mref-synth-moog-vcf-sect"> +<title +>Synth_MOOG_VCF</title> +<anchor id="mref-synth-moog-vcf"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_MOOG_VCF.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_MOOG_VCF</phrase +></textobject> +</mediaobject> + +<para +>Filtra todas las frecuencias por encima de la frecuencia de corte (es un filtro de 24db con 4 polos, lo que filtra -24db por octava por encima de la frecuencia de corte), pero ofrece un parámetro adicional para ajustar la resonancia del filtro, de forma que 0 significa sin resonancia y 4 auto-oscilación. </para> + +</sect3> + +</sect2> + +<sect2 id="mcat-synth-midi-sequencing"> +<title +>MIDI + Secuenciado</title> + +<sect3 id="mref-synth-midi-test-sect"> +<title +>Synth_MIDI_TEST</title> +<anchor id="mref-synth-midi-test"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_MIDI_TEST.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_MIDI_TEST</phrase +></textobject> +</mediaobject> + +<para +>Este módulo carga la estructura de un instrumento desde un archivo, y se registra a sí mismo como salida midi en el administrador &MIDI; de &arts;. Las notas enviadas a esta salida resultarán en voces del instrumento. </para> + +<note> +<para +>Es más fácil configurar ésto en &artscontrol; que hacerlo manualmente en &arts-builder;. </para> +</note> + +</sect3> + +<sect3 id="mref-synth-sequence-sect"> +<title +>Synth_SEQUENCE</title> +<anchor id="mref-synth-sequence"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_SEQUENCE.png" +format="PNG"/></imageobject +></mediaobject> + +<para +>Reproducirá una secuencia de notas una y otra vez. Las notas se dan en notación de tracker, y se separan por punto y coma. Un ejemplo es <literal +>A-3;C-4;E-4;C-4</literal +>. La velocidad se da como segundos por nota, por lo que si quiere obtener 120 bpm, especifique algo como 0,5 segundos/nota, ya que 60 segundos/0,5 segundos por nota=120 bpm. </para> + +<para +>Puede dar a cada nota una longitud relativa a la velocidad usando dos puntos después de la nota y después poniendo la longitud. Un ejemplo es <literal +>A-3:2;C-4:0,5;D-4:0,5;E-4;</literal +>. Como puede ver, los programas de composición midi tienden a ser más confortables ;) </para> + +<para +>Synth_SEQUENCE proporciona información adicional sobre la nota que se está reproduciendo en ese momento, donde 0 significa que acaba de empezar y 1 que acabó. Esta información puede ser usada por Synth_PSCALE. </para> +</sect3> + +<sect3 id="mref-synth-sequence-freq-sect"> +<title +>Synth_SEQUENCE_FREQ</title> +<anchor id="mref-synth-sequence-freq"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_SEQUENCE_FREQ.png" +format="PNG"/></imageobject +></mediaobject> + +<para +>Este módulo funciona como Synth_SEQUENCE con la única diferencia de que no escribe los nombres de las notas sino las frecuencias. </para> + +</sect3> + +</sect2> + +<sect2 id="mcat-synth-samples"> +<title +>Muestras</title> + +<sect3 id="mref-synth-play-wav-sect"> +<title +>Synth_PLAY_WAV</title> +<anchor id="mref-synth-play-wav"/> + +<mediaobject> +<imageobject +><imagedata fileref="images/Synth_PLAY_WAV.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_PLAY_WAV</phrase +></textobject> +</mediaobject> + +<para +>Reproducirá un archivo <literal role="extension" +>wav</literal +>. Sólo estará presente si dispone de libaudiofile en su ordenador. El archivo wav empezará tan pronto como el módulo se cree. </para> + +<para +>Parará tan pronto como se termine, entonces finished se establecerá a 1. El parámetro speed puede usarse para reproducir el archivo más rápido o más lento, donde 1 es la velocidad normal (la grabada). </para> +<!-- TODO: KDE2.2: check that this really works together in instruments with +the done parameter things ;) --> +</sect3> + +</sect2> + +<sect2 id="mcat-synth-soundio"> +<title +>E/S de sonido</title> + +<sect3 id="mref-synth-play-sect"> +<title +>Synth_PLAY</title> +<anchor id="mref-synth-play"/> + +<mediaobject> +<imageobject +><imagedata fileref="images/Synth_PLAY.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_PLAY</phrase +></textobject> +</mediaobject> + +<important> +<para +>Normalmente no necesitará este módulo, a menos que esté escribiendo aplicaciones independientes. Normalmente dentro de &artsd;, ya existe un módulo Synth_PLAY, y crear otro no funcionará. </para> +</important> + +<para +>El módulo Synth_PLAY sacará la señal de audio por la tarjeta de sonido. Los canales izquierdo y derecho deben contener la entrada <emphasis +>normalizada</emphasis +> para los canales. Si su entrada no está entre -1 y 1, obtendrá cortes. </para> + +<para +>Como ya se dijo, puede haber solo un módulo Synth_PLAY en uso, ya que este accede directamente a la tarjeta de sonido. Use buses si desea mezclar más de una transmisión antes de la reproducción. Use el módulo Synth_AMAN_PLAY para obtener algo como una salida de audio dentro de &artsd;. </para> + +<para +>Tenga en cuenta que Synth_PLAY también hace la sincronización de la estructura completa. Esto significa: no hay Synth_PLAY = no hay fuente de sincronización = no hay sonido. Por tanto, necesitará (exactamente) un objeto Synth_PLAY. </para> + +</sect3> + +<sect3 id="mref-synth-record-sect"> +<title +>Synth_RECORD</title> +<anchor id="mref-synth-record"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_RECORD.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_RECORD</phrase +></textobject> +</mediaobject> + +<important> +<para +>Normalmente no necesitará este módulo, a menos que vaya a escribir aplicaciones independientes. Normalmente dentro de artsd, ya existe un módulo Synth_RECORD, y crear otro no funcionará. </para> +</important> + +<para +>El módulo Synth_RECORD grabará una señal desde la tarjeta de sonido. Los canales derecho e izquierdo contendrán la entrada de los canales (entre -1 y 1). </para> + +<para +>Como ya se mencionó, solo se puede utilizar un módulo Synth_RECORD, ya que tiene acceso directo a su tarjeta de sonido. Utilice los buses si desea utilizar la grabación de la transmisión de audio en más de un lugar. Utilice el módulo Synth_AMAN_RECORD para obtener algo parecido a una entrada de artsd. Para que esto funcione, &artsd; debe ejecutarse <emphasis +>con el full duplex activo</emphasis +> (transmisión bidireccional). </para> +</sect3> + +<sect3 id="mref-synth-aman-play-sect"> +<title +>Synth_AMAN_PLAY</title> +<anchor id="mref-synth-aman-play"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_AMAN_PLAY.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_AMAN_PLAY</phrase +></textobject> +</mediaobject> + +<para +>El módulo Synth_AMAN_PLAY sacará su señal de audio. Es mejor (pero no necesario) que saque una señal normalizada (entre -1 y 1). </para> + +<para +>Este módulo usará el administrador de audio para asignar donde se reproducirá la señal. El administrador de audio puede controlarse a través de &artscontrol;. Para hacer más intuitivo su uso, es bueno dar a la señal que reproduce un nombre. Ésto puede hacerse a través de la opción <emphasis +>title</emphasis +>. Otra característica del administrador de audio es el ser capaz de recordar dónde reprodujo una señal la última vez. Para hacerlo necesita ser capaz de distinguir señales. Es por eso por lo que debe asignar un nombre único a <emphasis +>autoRestoreID</emphasis +> también. </para> +</sect3> + +<sect3 id="mref-synth-aman-record-sect"> +<title +>Synth_AMAN_RECORD</title> +<anchor id="mref-synth-aman-record"/> + +<mediaobject +><imageobject +><imagedata +fileref="images/Synth_AMAN_RECORD.png" format="PNG"/></imageobject> +<textobject +><phrase +>Synth_AMAN_RECORD</phrase +></textobject> +</mediaobject> + +<para +>El módulo Synth_AMAN_RECORD grabará una señal de audio desde una fuente externa (&ie;, un micrófono) en &artsd;. La señal será una señal normalizada (entre -1 y 1). </para> + +<para +>Este módulo usará el administrador de audio para asignar donde se reproducirá la señal. El administrador de audio puede controlarse a través de artscontrol. Para hacer más intuitivo su uso, es bueno dar a la señal que reproduce un nombre. Ésto puede hacerse a través de la opción <emphasis +>title</emphasis +>. Otra característica del administrador de audio es el ser capaz de recordar donde grabó una señal la última vez. Para hacerlo necesita ser capaz de distinguir señales. Es por eso por lo que debe asignar un nombre único a <emphasis +>autoRestoreID</emphasis +> también. </para> +</sect3> + +<sect3 id="mref-synth-capture-sect"> +<title +>Synth_CAPTURE</title> +<anchor id="mref-synth-capture"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_CAPTURE.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_CAPTURE</phrase +></textobject> +</mediaobject> + +<para +>El módulo Synth_CAPTURE escribirá una señal de audio a un archivo wav en su disco duro. El archivo se llamará <filename +>/tmp/mcop-<replaceable +>nombreusuario</replaceable +>/capture.wav</filename +> </para> +</sect3> + +</sect2> + +<sect2 id="mcat-synth-tests"> +<title +>Pruebas</title> + +<sect3 id="mref-synth-nil-sect"> +<title +>Synth_NIL</title> +<anchor id="mref-synth-nil"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_NIL.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_NIL</phrase +></textobject> +</mediaobject> + +<para +>No hace nada. Es útil solamente en situaciones de pruebas. </para> + +</sect3> + +<sect3 id="mref-synth-debug-sect"> +<title +>Synth_DEBUG</title> +<anchor id="mref-synth-debug"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_DEBUG.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_DEBUG</phrase +></textobject> +</mediaobject> + +<para +>Puede utilizar esto para la depuración. Se imprimirá el valor de la señal de 'invalue' en intervalos regulares (por ejemplo, 1 por segundo), combinada con el comentario que haya establecido. De esta forma podrá encontrar si algunas señales se encuentran dentro de ciertos rangos, o si están en cualquiera. </para> +</sect3> + +<sect3 id="mref-synth-midi-debug-sect"> +<title +>Synth_MIDI_DEBUG</title> +<anchor id="mref-synth-midi-debug"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_MIDI_DEBUG.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_MIDI_DEBUG</phrase +></textobject> +</mediaobject> + +<para +>Puede utilizar esto para depurar la forma en que los eventos &MIDI; están llegando a &arts;. </para> + +<para +>Cuando un MIDI_DEBUG está ejecutando &artsserver; imprimirá líneas como: </para> + +<screen +><computeroutput +>201 100753.837585 on 0 42 127</computeroutput +></screen> + +<screen +><computeroutput +>202 101323.128355 off 0 42</computeroutput +></screen> + +<para +>Mientras que la primera línea le dice que 100.753ms (esto es 100 segundos) después de que se inicie el MIDI_DEBUG, llegó un evento al canal 0. Este evento tiene la velocidad (volumen) de 127, la más alta posible. La siguiente línea muestra el evento de liberación del midi. [PENDIENTE: esto no funciona correctamente, hacerlo funcionar, y hacerlo a través del administrador &MIDI; ]. </para> +</sect3> + +<sect3 id="mref-synth-data-sect"> +<title +>Synth_DATA</title> +<anchor id="mref-synth-data"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_DATA.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_DATA</phrase +></textobject> +</mediaobject> + +<para +>Crea una señal con un valor constante. </para> +<!-- TODO: this doesn't really belong in test, does it? --> +</sect3> +</sect2> + +<sect2 id="mcat-synth-osc-mod"> +<title +>Oscilación y modulación</title> + +<sect3 id="mref-synth-frequency-sect"> +<title +>Synth_FREQUENCY</title> +<anchor id="mref-synth-frequency"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_FREQUENCY.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_FREQUENCY</phrase +></textobject> +</mediaobject> + +<para +>Todos los osciladores en &arts; no precisan un frecuencia como entrada, pero sí de una posición en la onda. La posición debería estar entre 0 y 1, que se mapeará como un objeto Synth_WAVE_SIN estándar en el intervalo 0..2*pi. Para generar valores de oscilación para un frecuencia se utiliza el módulo Synth_FREQUENCY. </para> +</sect3> + +<sect3 id="mref-synth-fm-source-sect"> +<title +>Synth_FM_SOURCE</title> +<anchor id="mref-synth-fm-source"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_FM_SOURCE.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_FM_SOURCE</phrase +></textobject> +</mediaobject> + +<para +>Esto se utiliza para modular la frecuencia. Coloque su frecuencia en la entrada de frecuencia y coloque otra señal en la entrada modulador. A continuación defina el nivel de modulación (modlevel) a algo similar a 0,3. La frecuencia se modulará con el modulador. Inténtelo. Funciona bien cuando sitúa una retroalimentación en él, lo que significa tener una combinación de señal de salida retrasada respecto a Synth_FM_SOURCE (necesitará colocarlo en algún oscilador de forma que tome el papel de Synth_FREQUENCY) y de alguna otra señal para obtener buenos resultados. </para> + +<para +>Funciona muy bien en combinación con osciladores Synth_WAVE_SIN. </para> +</sect3> + +</sect2> + +<sect2 id="mcat-synth-waveforms"> +<title +>Formas de onda</title> + +<sect3 id="mref-synth-wave-sin-sect"> +<title +>Synth_WAVE_SIN</title> +<anchor id="mref-synth-wave-sin"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_WAVE_SIN.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_WAVE_SIN</phrase +></textobject> +</mediaobject> + +<para +>Oscilador sinusoidal. Coloque una señal 'pos' de Synth_FREQUENCY o de Synth_FM_SOURCE en la entrada. Así obtendrá una onda sinusoidal como salida. La señal 'pos' especifica la posición en la onda, el rango 0..1 es mapeado internamente como 0..*pi. </para> + +</sect3> + +<sect3 id="mref-synth-wave-tri-sect"> +<title +>Synth_WAVE_TRI</title> +<anchor id="mref-synth-wave-tri"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_WAVE_TRI.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_WAVE_TRI</phrase +></textobject> +</mediaobject> + +<para +>Oscilador triangular. Coloque una señal 'pos' de Synth_FREQUENCY o de Synth_FM_SOURCE en la entrada. Así obtendrá una onda triangular como salida. La señal 'pos' especifica la posición en la onda, el rango 0..1 se mapeará internamente como 0..2*pi. Tenga cuidado. La señal de entrada <emphasis +>debería</emphasis +> estar en el rango 0..1 para que la señal de salida pueda producir buenos resultados. </para> +</sect3> + +<sect3 id="mref-synth-noise-sect"> +<title +>Synth_NOISE</title> +<anchor id="mref-synth-noise"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_NOISE.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_NOISE</phrase +></textobject> +</mediaobject> + +<para +>Generador de ruido. Genera una señal aleatoria entre -1 y 1. </para> + +</sect3> + +<sect3 id="mref-synth-wave-square-sect"> +<title +>Synth_WAVE_SQUARE</title> +<anchor id="mref-synth-wave-square"/> + +<mediaobject +><imageobject +><imagedata +fileref="images/Synth_WAVE_SQUARE.png" format="PNG"/></imageobject> +<textobject +><phrase +>Synth_WAVE_SQUARE</phrase +></textobject> +</mediaobject> + +<para +>Oscilador de ondas cuadradas. Coloque una señal 'pos' de Synth_FREQUENCY o de Synth_FM_SOURCE en la entrada. Así obtendrá una onda cuadrada como salida. La señal 'pos' especifica la posición en la onda, el rango 0..1 se mapeará internamente como 0..2*pi. Tenga cuidado. La señal de entrada <emphasis +>debería</emphasis +> estar en el rango 0..1 para la señal de salida para producir buenos resultados. </para> +</sect3> + +<sect3 id="mref-synth-wave-softsaw-sect"> +<title +>Synth_WAVE_SOFTSAW</title> +<anchor id="mref-synth-wave-softsaw"/> + +<mediaobject +><imageobject +><imagedata +fileref="images/Synth_WAVE_SOFTSAW.png" format="PNG"/></imageobject> +<textobject +><phrase +>Synth_WAVE_SOFTSAW</phrase +></textobject> +</mediaobject> + +<para +>Oscilador de ondas de diente de sierra. Similar al oscilador Synth_WAVE_TRI. Coloque una señal 'pos' de Synth_FREQUENCY o de Synth_FM_SOURCE en la entrada. Así obtendrá un onda de diente de sierra como salida. La señal 'pos' especifica la posición en la onda, el rango 0..1 se mapeará internamente como 0..2*pi. Tenga cuidado. La señal de entrada <emphasis +>debería</emphasis +> estar en el rango 0..1 para la señal de salida para producir buenos resultados. </para> +</sect3> + +<sect3 id="mref-synth-wave-pulse-sect"> +<title +>Synth_WAVE_PULSE</title> +<anchor id="mref-synth-wave-pulse"/> + +<mediaobject +><imageobject +><imagedata fileref="images/Synth_WAVE_PULSE.png" +format="PNG"/></imageobject> +<textobject +><phrase +>Synth_WAVE_PULSE</phrase +></textobject> +</mediaobject> + +<para +>Oscilador de pulso - este modulo es similar en la idea al oscilador rectangular (Synth_WAVE_RECT), pero proporciona un relación configurable del nivel alto/bajo a través del parámetro <emphasis +>dutycycle</emphasis +>. Coloque una señal 'pos' de Synth_FREQUENCY o de Synth_FM_SOURCE en la entrada. Así obtendrá un onda de pulso como salida. La señal 'pos' especifica la posición en la onda, el rango 0..1 se mapeará internamente como 0..2*pi. Tenga cuidado. La señal de entrada <emphasis +>debería</emphasis +> estar en el rango 0..1 para la señal de salida para producir buenos resultados. </para> +</sect3> +</sect2> +<sect2 id="mcat-synth-misc"> +<title +>Varios</title> + +<sect3 id="mref-synth-compressor-sect"> +<title +>Synth_COMPRESSOR</title> +<anchor id="mref-synth-compressor"/> + +<mediaobject> +<imageobject +><imagedata fileref="images/Synth_COMPRESSOR.png" + format="PNG"/></imageobject +></mediaobject> + +<para +>Este módulo reduce el rango dinámico de la señal. Por ejemplo, los compresores son prácticos para compensar las variaciones de amplitud de intensidad cuando alguien habla por el micrófono. </para> + +<para +>Tan pronto como el nivel de entrada exceda un determinado nivel (el umbral) la señal se comprimirá. Simplemente multiplica todo lo que esté por el encima del umbral con el ratio, que debería ser un número entre 0 y 1. Finalmente la señal completa se multiplica por el factor de salida. </para> + +<para +>Los argumentos attack y release retrasa el inicio y el final de la compresión. Use esto si, por ejemplo, aún desea escuchar el ruidoso inicio de una base de tambores. El argumento es en milisegundos y un attack o release de 0ms es posible pero puede producir un ligero ruido. </para> + +</sect3> +</sect2> +</sect1> + +<sect1 id="visual-modules-reference"> +<title +>Referencia de módulos visuales</title> + +<para +>PENDIENTE para cuando los módulos visuales estén más «terminados». </para> +</sect1> + +</chapter> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/porting.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/porting.docbook new file mode 100644 index 00000000000..0ecbc29d67b --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/porting.docbook @@ -0,0 +1,52 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<chapter id="porting"> +<title +>Portando aplicaciones a &arts;</title> + +<sect1 id="using-artsdsp"> +<title +>Utilizando &artsdsp;</title> + +<para +>La utilidad &artsdsp;, <link linkend="artsdsp" +>descrita con anterioridad</link +>, permite que la mayoría de aplicaciones antiguas que trabajan directamente sobre los dispositivos de audio, funcionen correctamente con &arts;. Las aplicaciones escritas para utilizar el Enlightenment Sound Daemon (<application +>esd</application +>) también funcionarán en la mayoría de casos ejecutando <application +>esd</application +> sobre &artsdsp;. </para> + +<para +>Esto ofrece una buena solución a corto plazo para portar aplicaciones existentes a &kde;. Sin embargo, no permite que la aplicación utilice todas las posibilidades de &arts;, tales como el uso de módulos y transmisiones multimedia que no sean de audio digital. Si la aplicación va más allá de ejecutar archivos de audio, es lógico añadir soporte nativo para &arts; a la aplicación. </para> + +<para +>Utilizar &arts; también significa que la aplicación no tiene mucho trabajo que hacer, ya que puede utilizar las funciones de &arts; para manejar codecs y diferentes tipos de medios, así como tener control sobre el hardware de sonido. </para> + +</sect1> + +<sect1 id="adding-native-arts-support"> +<title +>Añadiendo soporte nativo para &arts;</title> + +<para +>Al utilizar &arts; se encontrará con diferentes <link linkend="arts-apis" +><acronym +>API</acronym +>s</link +> para escoger. La decisión sobre cual utilizar depende de una serie de factores, incluyendo el tipo de medio que se utilizará (sonido, &MIDI;, &CD; audio, &etc;), las características requeridas a la <acronym +>API</acronym +>, y si se está programando en C++. En la mayoría de los casos la elección debería ser relativamente obvia en base a las necesidades. </para> + +<para +>En los casos de portabilidad entre plataformas, las aplicaciones que deban poderse ejecutar en plataformas diferentes al &kde;, no pueden depender de que &arts; esté presente. Un buen método para adaptarse a diferentes ambientes multimedia es el uso de conectores. Si además la <acronym +>API</acronym +> de los conectores es abierta y está bien documentada permitiremos que otras personas diferentes al desarrollador de la aplicación puedan implementar un conector para &arts;. </para> + +</sect1> + +</chapter> + diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/references.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/references.docbook new file mode 100644 index 00000000000..0c4b232fffc --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/references.docbook @@ -0,0 +1,61 @@ +<!-- <?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<chapter id="references"> +<title +>Referencias</title> + +<variablelist> + +<varlistentry> +<term +><ulink +url="http://multimedia.kde.org" +>http://multimedia.kde.org</ulink +></term> +<listitem> +<para +>Esta es la principal página web sobre información relacionada con &kde; y multimedia. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><ulink +url="http://www.arts-project.org" +>http://www.arts-project.org</ulink +></term> +<listitem> +<para +>Es la página web del proyecto &arts;. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>&kde; 2.0 Development</term> +<listitem> +<para +>El capítulo 14 de este libro publicado trata sobre multimedia, incluyendo &arts;. Esta disponible impreso o en línea con anotaciones desde <ulink url="http://www.andamooka.org/" +>http://www.andamooka.org</ulink +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<ulink +url="http://sound.condorow.net" +>http://sound.condorow.net</ulink +></term> +<listitem> +<para +>Esta web tiene una extensa lista de aplicaciones de sonido y &MIDI; para &Linux;. </para> +</listitem> +</varlistentry> + +</variablelist> + +</chapter> diff --git a/tde-i18n-es/docs/tdemultimedia/artsbuilder/tools.docbook b/tde-i18n-es/docs/tdemultimedia/artsbuilder/tools.docbook new file mode 100644 index 00000000000..7f370c76c75 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/artsbuilder/tools.docbook @@ -0,0 +1,1003 @@ +<!-- +<?xml version="1.0" ?> +<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> + +To validate or process this file as a standalone document, uncomment +this prolog. Be sure to comment it out again when you are done --> + +<chapter id="arts-tools"> +<title +>Herramientas &arts;</title> + +<para +>Incluídas con &arts; son una serie de utilidades para controlar y configurar su comportamiento. Necesita estar algo familiarizado con muchas de estas herramientas para usar &arts; de forma efectiva. Esta sección describe cada utilidad y sus opciones para las órdenes. </para> + +<sect1 id="kde-control-center"> +<title +>&kcontrol;</title> + +<para +>Cuando ejecuta &arts; bajo &kde;, el &kcontrolcenter; provee un grupo de opciones en el panel de control bajo la categoría <guilabel +>Sistema de sonido</guilabel +>. Algunas de estas opciones las usa &arts;. Puede también asociar sonidos con varios eventos del administrador de ventanas y &kde; usando el panel <menuchoice +><guilabel +>Sonidos y multimedia</guilabel +><guilabel +>Notificaciones de sistema</guilabel +> </menuchoice +>. Consulte el manual de &kcontrol; para obtener información sobre el manejo de las opciones del panel. </para> + +</sect1> + +<sect1 id="artsd"> +<title +>&artsd;</title> + +<para +>El acceso a los recursos del hardware de sonido es controlado por &artsd;, el demonio de &arts;. Ésto permite a aplicaciones diferentes enviar solicitudes simultáneas al servidor, donde pueden ser mezcladas y reproducidas. Sin un servidor de sonido centralizado una aplicación usando un dispositivo de sonido podría hacer que otras aplicaciones no lo pudieran usar. </para> + +<para +>Para usar &arts; tiene que haber una y solo una copia de &artsd; ejecutándose. Se ejecuta normalmente cuando &kde; se inicia si está activado en el panel de &kcontrol; el <guilabel +>Servidor de sonido</guilabel +> </para> + +<para +>El programa acepta los siguientes argumentos:</para> + +<!-- LW: FIX THIS --> + +<cmdsynopsis +><command +>artsd</command +> <group choice="opt" +> <option +>-n </option +> <option +>-p </option +> <option +>-N </option +> <option +>-W <replaceable +>n</replaceable +></option +> </group +> <group choice="opt" +> <option +>-a <replaceable +>método de audio </replaceable +></option +> <option +>-r <replaceable +>ratio de muestreo </replaceable +></option +> <option +>-b <replaceable +>bits </replaceable +></option +> <option +>-d </option +> <option +>-D <replaceable +>nombre de dispositivo </replaceable +></option +> <option +>-F <replaceable +>fragmentos </replaceable +></option +> <option +>-S <replaceable +>tamaño </replaceable +></option +> <option +>-s <replaceable +>segundos </replaceable +></option +> <option +>-m <replaceable +>nombre aplicación </replaceable +></option +> </group +> <group choice="opt" +> <option +>-h</option +> <option +>-A</option +> <option +>-v</option +> <option +>-l <replaceable +>nivel </replaceable +></option +> </group +> </cmdsynopsis> + +<variablelist +><varlistentry> +<term +><option +>-r <replaceable +>ratio de muestreo</replaceable +></option +></term> +<listitem> +<para +>Establece el ratio de muestreo a usar.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-h</option +></term> +<listitem> +<para +>Muestra la utilización de la orden.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-n</option +></term> +<listitem> +<para +>Habilita la transparencia de red.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-p <replaceable +>puerto</replaceable +></option> +</term> +<listitem> +<para +>Establece el puerto <acronym +>TCP</acronym +> a usar (implica <option +>-n</option +>).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-u</option +></term> +<listitem> +<para +>Público, sin autentificación (peligroso).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-d</option +></term> +<listitem> +<para +>Habilita operaciones en ambas direcciones (full duplex).</para> +</listitem> +</varlistentry> +<varlistentry> +<term +><option +>-D <replaceable +>nombre de dispositivo</replaceable +></option +></term> +<listitem> +<para +>Especifica el dispositivo de audio (normalmente <filename +>/dev/dsp</filename +>).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-F <replaceable +>fragmentos</replaceable +></option +></term> +<listitem> +<para +>Establece el número de fragmentos.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-S <replaceable +>tamaño</replaceable +></option +></term> +<listitem> +<para +>Establece el tamaño de los fragmentos, en bytes.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-s <replaceable +>segundos</replaceable +></option +></term> +<listitem> +<para +>Establece el tiempo de autosuspensión en segundos. El valor cero desactiva la autosuspensión.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-m <replaceable +>nombre applicación</replaceable +></option +></term> +<listitem> +<para +>Especifica el nombre de la aplicación que se usará para mostrar errores, avisos y mensajes de información. Si está ejecutando KDE puede usar la utilidad <application +>artsmessage</application +> para ésto.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-N</option +></term> +<listitem> +<para +>Incrementa el tamaño de la memoria de intercambio de red a un valor adecuado para ejecutarse sobre una LAN a 10 mbps. Es equivalente a usar la opción -w 5 (ver a continuación). </para> +</listitem> +</varlistentry> +<varlistentry> +<term +><option +>-w <replaceable +>n</replaceable +></option +></term> +<listitem> +<para +>Cuando ejecute <application +>artsd</application +> a través de una conexión de red a otro servidor, normalmente querrá utilizar un tamaño de memoria de intercambio más grande para evitar pérdidas. ARts proporciona aplicaciones con un tamaño de memoria de intercambio mínimo sugerido. Sin esta opción, el tamaño predeterminado está basado en el tamaño del fragmento * número de fragmento. Utilizar esta opción puede incrementar el tamaño predeterminado con un factor <replaceable +>n</replaceable +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-l <replaceable +>nivel</replaceable +></option +></term> +<listitem> +<para +>Establece el nivel de información: 3 (silencio), 2 (avisos), 1 (información) ó 0 (depuración).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-v</option +></term> +<listitem> +<para +>Muestra el nivel de la versión.</para> +</listitem> +</varlistentry> + +</variablelist> + +<para +>En la mayoría de los casos con ejecutar &artsd; será suficiente. </para> +</sect1> + +<sect1 id="artswrapper"> +<title +>&artswrapper;</title> + +<para +>Para proveer una buena respuesta en tiempo real, &artsd; se ejecuta normalmente como un proceso en tiempo real (en plataformas en las que se soportan prioridades en tiempo real). Ésto requiere permisos de <systemitem class="username" +>root</systemitem +>, por lo que para minimizar las implicaciones de seguridad, &artsd; puede iniciarse usando un pequeño programa &artswrapper; el cual simplemente establece prioridad en tiempo real (ejecutándose como <systemitem class="username" +>root</systemitem +>) y después arranca &artsd; como un usuario no <systemitem class="username" +>root</systemitem +>. </para> + +<para +>Si hace artswrapper SUID <systemitem class="username" +>root</systemitem +>, probablemente mejorará la calidad de su reproductor de audio reduciendo los saltos en la música. Sin embargo, también incrementará el riesgo de fallos en el código o de que un usuario malicioso pueda colgar o perjudicar su máquina. Además, en las máquinas multiusuario, priorizar el audio de alta calidad puede dar como resultado un menor rendimiento para los usuarios que intentan hacer «productivo» el uso de la máquina.</para> + +</sect1> + +<sect1 id="artsshell"> +<title +>&artsshell;</title> + +<para +>El orden &artsshell; se ideó como una utilidad para realizar varias funciones relacionadas con el servidor de sonido. Se espera que la utilidad se extienda con nuevas órdenes en el futuro (consulte los comentarios del código fuente para ver algunas ideas). </para> + +<para +>La orden tiene el siguiente formato: </para> + +<!-- LW: FIX THIS --> + +<cmdsynopsis +><command +>artsshell</command +> <group +> <arg +>suspend</arg +><arg +>status</arg +> <arg +>terminate</arg +> <arg +>autosuspend <replaceable +>segundos</replaceable +></arg +> <arg +>networkbuffers <replaceable +>n</replaceable +></arg +> <arg +>volume [<replaceable +>volumen</replaceable +>]</arg +> <arg +>stereoeffect <replaceable +>opciones</replaceable +></arg +> </group +> <group +> <option +>-h</option +> <option +>-q</option +> </group +> </cmdsynopsis> + +<para +>artsshell [opciones] <replaceable +>orden</replaceable +> [<replaceable +>opciones de la orden</replaceable +>] </para> + +<para +>Están soportadas las siguientes opciones: </para> + +<variablelist> + +<varlistentry> +<term +><option +>-q</option +></term> +<listitem> +<para +>Suprime todas las salidas.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-h</option +></term> +<listitem> +<para +>Muestra la utilización de la orden.</para> +</listitem> +</varlistentry> + +</variablelist> + +<para +>Están soportadas las siguientes órdenes:</para> + +<variablelist> + +<varlistentry> +<term +><option +>suspend</option +></term> +<listitem> +<para +>Suspende el servidor de sonido. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>status</option +></term> +<listitem> +<para +>Muestra información del estado del servidor de sonido.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>terminate</option +></term> +<listitem> +<para +>Finalizar el servidor de sonido. Ésto puede confundir y/o colgar aplicaciones que se estén usando en ese momento. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>autosuspend</option +> <parameter +>segundos</parameter +></term> +<listitem> +<para +>Establece el tiempo de autosuspensión en el número especificado de segundos. El servidor de sonido se suspenderá asimismo si está ocioso durante ese periodo de tiempo. El valor cero desactiva la autosuspensión. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>networkbuffers</option +> <parameter +>n</parameter +></term> +<listitem> +<para +>Establece el tamaño de la memoria de intercambio de red a un factor <parameter +>n</parameter +> veces el tamaño predeterminado. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>volume</option +> [<replaceable +>volumen</replaceable +>]</term> +<listitem> +<para +>Establece el nivel de volumen para la salida de audio del servidor de sonido. El argumento <replaceable +>volumen</replaceable +> es un valor de coma flotante. Si no se añaden argumentos se muestra el volumen actual. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>stereoeffect list</option +></term> +<listitem> +<para +>Lista todos los módulos de efectos estéreo disponibles.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>stereoeffect insert [top|bottom]</option +> <replaceable +>nombre</replaceable +></term> +<listitem> +<para +>Inserta un efecto estéreo en la pila de efectos estéreo. Devuelve un identificador que puede usarse después para borrarlo. Puede instalarse en la parte superior o en la inferior (predeterminado).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>stereoeffect remove</option +> <replaceable +>id</replaceable +></term> +<listitem> +<para +>Quita el efecto estéreo con identificador <replaceable +>id</replaceable +> de la pila de efectos.</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="artsplay"> +<title +><application +>artsplay</application +></title> + +<para +>La orden <application +>artsplay</application +> es una utilidad para reproducir un archivo de sonido. Acepta un solo argumento correspondiente al nombre del archivo de sonido que será enviado al servidor de sonido para ser reproducido. El archivo de sonido puede ser de alguno de los tipos de archivo de sonido comunes <literal role="extension" +>wav</literal +> o <literal role="extension" +>au</literal +>. Ésta utilidad es buena para comprobar si el servidor de sonido está funcionando. Ejecutando dos órdenes en paralelo o en una rápida sucesión puede demostrar cómo el servidor de sonido combina más de una fuente de sonido.</para> + +</sect1> + +<sect1 id="artsdsp"> +<title +><application +>artsdsp</application +></title> + +<para +>El servidor de sonido solo soporta aplicaciones que soporten &arts;. Algunas aplicaciones heredadas querrán acceder al dispositivo de sonido directamente. La orden &artsdsp; proporciona una solución provisional que permite a la mayor parte de estas aplicaciones ejecutarse sin cambios. </para> + +<para +>Cuando una aplicación se ejecuta bajo &artsdsp; todos los accesos al dispositivo de audio <filename class="devicefile" +>/dev/dsp</filename +> son interceptados y mapeados dentro de las llamadas al <acronym +>API</acronym +> de &arts;. A pesar de que la emulación del dispositivo no es muy buena, muchas aplicaciones funcionan de este modo, aunque con alguna degradación en la ejecución y la latencia. </para> + +<para +>La orden &artsdsp; sigue el siguiente formato: </para> + +<!-- LW: FIX THIS --> +<para +>artsdsp [<replaceable +>opciones</replaceable +>] <replaceable +>argumentos de la aplicación</replaceable +> </para> + +<para +>Se reconocen las siguientes opciones: </para> + +<variablelist> + +<varlistentry> +<term +><option +>-h</option +>, <option +>--help</option +></term> +<listitem> +<para +>Muestra un mensaje de ayuda.</para> +</listitem> +</varlistentry> +<varlistentry> +<term +><option +>-n</option +> <option +>--name</option +> = <replaceable +>nombre</replaceable +></term> +<listitem> +<para +>Usa <replaceable +>nombre</replaceable +> para identificar un reproductor en <command +>artsd</command +>.</para> + +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-m</option +> <option +>--mmap</option +></term> +<listitem> +<para +>Emula el mapeo de memoria (⪚ para <application +>Quake</application +>).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-v</option +> <option +>--verbose</option +></term> +<listitem> +<para +>Muestra los parámetros.</para> +</listitem> +</varlistentry> + +</variablelist> + +<para +>Una llamada típica es: </para> + +<para> +<userinput +><command +>artsdsp</command +> <option +>-v</option +> <option +>-m</option +> <parameter +>realplay <replaceable +>cancion.mp3</replaceable +></parameter +></userinput> +</para> + +<para +>Algunas aplicaciones funcionan mejor con la opcion <option +>--mmap</option +>. No todas las características del dispositivo de sonido son totalmente emuladas, pero muchas aplicaciones deberían funcionar. Si encuentra una que no lo hace, envíe un detallado informe del fallo y los desarrolladores intentarán arreglarlo. De nuevo, recuerde que ésta es una solución provisional y algo fea. La mejor solución es añadir soporte nativo para &arts; en las aplicaciones. Si su aplicación favorita de sonido no tiene soporte para &arts; pregunte a sus desarrolladores para proveérselo. </para> + +</sect1> + +<sect1 id="artscat"> +<title +><application +>artscat</application +></title> + +<para +>Es una simple utilidad para enviar datos de audio puros al servidor de sonido. Necesita especificar el formato de los datos (ratio de muestreo, tamaño de muestra y número de canales). Probablemente sea una utilidad que no usará a menudo, pero puede ser útil para hacer pruebas. La sintaxis de la orden es: </para> + +<!-- LW: FIX THIS --> + +<para +>artscat [ <replaceable +>opciones</replaceable +> ] [ <replaceable +>nombre de archivo</replaceable +> ] </para> + +<para +>Si no se especifica un nombre de archivo, lee la entrada estándar. Están soportadas las siguientes opciones: </para> + +<variablelist> +<varlistentry> +<term +><option +>-r</option +> <parameter +>ratio de muestreo</parameter +></term> +<listitem> +<para +>Establece el ratio de muestreo a usar. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-b</option +> <parameter +>bits</parameter +></term> +<listitem> +<para +>Establece el tamaño de muestra a usar (8 o 16). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-c</option +> <parameter +>canales</parameter +></term> +<listitem> +<para +>Establece el número de canales (1 ó 2). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-h</option +></term> +<listitem> +<para +>Muestra el uso de la orden y sale. </para> +</listitem> +</varlistentry> + +</variablelist> +</sect1> + +<sect1 id="artscontrol"> +<title +>&artscontrol;</title> + +<para +>Ésta es una aplicación gráfica para realizar una serie de tareas relacionadas con el servidor de sonido. La ventana predeterminada muestra dos indicadores de volumen y un deslizador para controlar este volumen. Desde el menú <guimenu +>Ver</guimenu +> puede seleccionar otras funciones: </para> + +<variablelist> + +<varlistentry> +<term +><guimenuitem +>Campo FFT</guimenuitem +></term> +<listitem> +<para +>Abre una ventana que muestra una pantalla con un analizador de espectro en tiempo real. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Administrador de audio</guimenuitem +></term> +<listitem> +<para +>Muestra las fuentes de sonido activas y le permite conectarlas a alguno de los buses disponibles. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Estado de aRTs</guimenuitem +></term> +<listitem> +<para +>Muestra si el servidor de sonido se está ejecutando y si trabaja en tiempo real. Indica si el servidor será autosuspendido y permite suspenderlo automáticamente. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Administrador midi</guimenuitem +></term> +<listitem> +<para +>Muestra entradas y salidas &MIDI; activas y le permite realizar conexiones [PENDIENTE: ¿No funciona todavía? Necesita más detalles]. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>FreeVerb</guimenuitem +></term> +<listitem> +<para +>Conecta el efecto de reverberación FreeVerb a la pila de efectos de salida de &arts; y le permite controlar los parámetros del efecto gráficamente. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Pantalla de volumen estilo led</guimenuitem +></term> +<listitem> +<para +>Cambia el indicador de volumen de la ventana principal para usar una pantalla con formato de <acronym +>LED</acronym +> en lugar de una barra de progreso. </para> +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="artsc-config"> +<title +><application +>artsc-config</application +></title> + +<para +>Ésta es una utilidad para ayudar a los desarrolladores utilizando el <acronym +>API</acronym +> C de &arts;. Da como resultado la salida apropiada para el compilador así como las opciones necesarias cuando se compila y enlaza código con &arts;. Se pretende que sea utilizado sin archivos para ayudar a la portabilidad. La orden acepta tres opciones: </para> + +<variablelist> +<varlistentry> +<term +><option +>--cflags</option +></term> +<listitem> +<para +>Muestra los indicadores del compilador cuando se compila con la <acronym +>API</acronym +> C de &arts;. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>--libs</option +></term> +<listitem> +<para +>Muestra los indicadores del enlazador necesarios cuando se enlaza con la <acronym +>API</acronym +> C de &arts;. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +><acronym +>--version</acronym +></term> +<listitem> +<para +>Muestra la versión de la orden <command +>artsc-config</command +>. </para> +</listitem> +</varlistentry> +</variablelist> + +<para +>La respuesta usual de la orden se muestra a continuación:</para> + +<screen width="40" +><prompt +>%</prompt +> <userinput +><command +>artsc-config</command +> <option +>--cflags</option +></userinput> +<computeroutput +>-I/usr/local/kde2/include/artsc</computeroutput> +<prompt +>%</prompt +> <userinput +><command +>artsc-config</command +> <option +>--libs</option +></userinput> +<computeroutput +>-L/usr/local/kde2/lib -ldl -lartsc -DPIC -fPIC -lpthread</computeroutput> +<prompt +>%</prompt +> <userinput +><command +>artsc-config</command +> <option +>--version</option +></userinput> +<computeroutput +>0.9.5</computeroutput +> +</screen> + +<para +>Puede usar esta utilidad para crear un archivo utilizando una regla como: </para> + +<programlisting +>artsc: artsc.c + gcc `artsc-config --cflags` -o artsc artsc.c `artsc-config --libs` +</programlisting> + +</sect1> + +<sect1 id="mcopidl"> +<title +>&mcopidl;</title> + +<para +>La utilidad &mcopidl; es el compilador de archivos &IDL; para &MCOP;, el Protocolo de Comunicación Multimedia usado por &arts;. Las interfaces en &arts; se definen en &IDL;, un lenguaje independiente, Lenguaje de Definición de Interfaces. La utilidad &mcopidl; acepta un archivo &IDL; como entrada y genera archivos cabecera y fuente en C++ para una clase, implementando la interfaz. La orden utiliza la siguiente sintaxis: </para> + +<!-- LW: FIX THIS --> + +<para +>mcopidl [ <replaceable +>opciones</replaceable +> ] <replaceable +>nombrearchivo</replaceable +> </para> + +<para +>Las opciones válidas son:</para> +<variablelist> +<varlistentry> +<term +><option +>-I</option +> <parameter +>directorio</parameter +></term> +<listitem> +<para +>Busca cabeceras en el <parameter +>directorio</parameter +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-e</option +> <parameter +>nombre</parameter +></term> +<listitem> +<para +>Excluye el nombre de una estructura, interfaz o tipo enum durante la generación del código. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-t</option +></term> +<listitem> +<para +>También crea archivos <literal role="extension" +>.mcoptype</literal +>/<literal role="extension" +>.mcopclass</literal +> con información de tipo para el archivo &IDL;. </para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Puede encontrar más información sobre &MCOP; e &IDL; en la sección <link linkend="interfaces" +>Interfaces e &IDL;</link +>. </para> + +</sect1> + +</chapter> diff --git a/tde-i18n-es/docs/tdemultimedia/juk/Makefile.am b/tde-i18n-es/docs/tdemultimedia/juk/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/juk/Makefile.in b/tde-i18n-es/docs/tdemultimedia/juk/Makefile.in new file mode 100644 index 00000000000..0a3435c2ba8 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia/juk +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/juk/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/juk/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/juk/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/juk/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/juk/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=juk-adv-search.png search-playlist.png index.docbook juk-main.png juk-file-renamer.png juk-tag-guesser.png index.cache.bz2 history-playlist.png normal-playlist.png Makefile.in toolbar.png Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) toolbar.png juk-file-renamer.png normal-playlist.png juk-main.png juk-tag-guesser.png index.docbook history-playlist.png juk-adv-search.png search-playlist.png + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk + @for base in toolbar.png juk-file-renamer.png normal-playlist.png juk-main.png juk-tag-guesser.png index.docbook history-playlist.png juk-adv-search.png search-playlist.png ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk/$$base ;\ + done + +uninstall-nls: + for base in toolbar.png juk-file-renamer.png normal-playlist.png juk-main.png juk-tag-guesser.png index.docbook history-playlist.png juk-adv-search.png search-playlist.png ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in toolbar.png juk-file-renamer.png normal-playlist.png juk-main.png juk-tag-guesser.png index.docbook history-playlist.png juk-adv-search.png search-playlist.png ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/juk/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/juk/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/juk/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/juk/history-playlist.png b/tde-i18n-es/docs/tdemultimedia/juk/history-playlist.png Binary files differnew file mode 100644 index 00000000000..b1a61ac3f98 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/history-playlist.png diff --git a/tde-i18n-es/docs/tdemultimedia/juk/index.cache.bz2 b/tde-i18n-es/docs/tdemultimedia/juk/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..1eb62b7f11b --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/index.cache.bz2 diff --git a/tde-i18n-es/docs/tdemultimedia/juk/index.docbook b/tde-i18n-es/docs/tdemultimedia/juk/index.docbook new file mode 100644 index 00000000000..adee1b01f68 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/index.docbook @@ -0,0 +1,2233 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY package "tdemultimedia"> + <!ENTITY kappname "&juk;"> + <!ENTITY juk "<application +>JuK</application +>"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % Spanish "INCLUDE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>El manual de &juk;</title> + +<authorgroup> +<author +>&Lauri.Watts; &Lauri.Watts.mail;</author> +<author +><firstname +>Michael</firstname +> <surname +>Pyne</surname +> <affiliation +> <address +><email +>[email protected]</email +></address> +</affiliation> +</author> + +<othercredit role="developer" +><firstname +>Scott</firstname +> <surname +>Wheeler</surname +> <affiliation +> <address +><email +>[email protected]</email +></address> +</affiliation> +</othercredit> + +<othercredit role="translator" +><firstname +>Santiago</firstname +><surname +>Fernández Sancho</surname +><affiliation +><address +><email +>[email protected]</email +></address +></affiliation +><contrib +>Traductor</contrib +></othercredit +> + +</authorgroup> + +<copyright> +<year +>2001</year> +<year +>2002</year> +<year +>2004</year> +<holder +>Scott Wheeler</holder> +</copyright> +<legalnotice +>&FDLNotice;</legalnotice> + +<date +>2004-05-06</date> +<releaseinfo +>2.1</releaseinfo> + +<abstract> +<para +>&juk; es una caja de música, un etiquetador y un administrador de colecciones. </para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>tdemultimedia</keyword> +<keyword +>audio</keyword> +<keyword +>etiquetador</keyword> +<keyword +>reproductor</keyword> +<keyword +>caja de música</keyword> +<keyword +>JuK</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title +>Introducción</title> + +<para +>&juk; es, bueno, una caja de música. Al igual que la mayor parte de las aplicaciones, &juk; le permite editar las «etiquetas» de sus archivos de audio, y administrar su colección y lista de reproducción. </para> +</chapter> + +<chapter id="using-juk"> +<title +>Utilizar &juk;</title> + +<para> +<screenshot> +<screeninfo +>Veamos un captura de pantalla de &juk;</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="juk-main.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de &juk; en acción.</phrase> + </textobject> + </mediaobject> +</screenshot> +</para> + +<para +>&juk; mantiene una lista de todos los archivos de los que tiene conocimiento. Es lo que se denomina lista de colecciones. La <guilabel +>lista de colecciones</guilabel +> es específica de &juk; y no se comparte con otras aplicaciones.</para> + +<para +>Independientemente de la lista de colecciones podemos encontrar las listas de reproducción. Puede tener tantas listas de reproducción como desee. &juk; puede utilizar listas de reproducción creadas con otros reproductores (como &noatun; o <application +>xmms</application +>) y puede administrar las listas de reproducción creadas con estas aplicaciones dentro de &juk;.</para> + +<para +>Puede añadir archivos a la lista de colecciones de forma individual utilizando <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Abrir...</guimenuitem +></menuchoice +> y seleccionándolo a través de un cuadro de diálogo de archivos estándar de &kde;. Puede añadir carpetas utilizando <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Añadir carpeta...</guimenuitem +></menuchoice +> Las carpetas añadidas se volverán a leer cada vez que inicie &juk;. Puede forzar el que se vuelvan a leer las carpetas pulsando con el botón derecho en el icono de la <guilabel +>Lista de colecciones</guilabel +>, y seleccionando <guimenuitem +>Recargar</guimenuitem +>.</para> + +<para +>Añadir una canción a la lista de reproducción lo añadirá también automáticamente a la lista de colecciones, pero añadirlo a la lista de colecciones no lo añadirá de forma automática a ninguna lista de reproducción.</para> + +<para +>Puede crear listas de reproducción rápidamente a partir de su lista de colecciones completa, pulsando con el botón derecho del ratón en el icono de la lista de reproducción y seleccionando duplicar. La lista de reproducción resultante es una lista de reproducción normal y editarla no afectará a la lista de colecciones.</para> + +<para +>Podrá añadir archivos de listas de reproducción individuales creadas fuera de &juk; utilizando la opción <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Abrir...</guimenuitem +></menuchoice +> Podrá añadir todos los archivos de lista de reproducción que se encuentren en una carpeta a través de <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Añadir carpeta...</guimenuitem +></menuchoice +></para> + +<para +>Podrá crear una lista de reproducción seleccionando <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Nueva</guimenuitem +></menuchoice +> o el icono <guiicon +>Nueva</guiicon +> de la barra de herramientas. Se le pedirá un nombre, y aparecerá un icono para esta lista en el panel de las listas de reproducción. Ahora podrá arrastrar y soltar archivos de la lista de colecciones, o de otras listas de reproducción distintas a la suya. Utilice el icono <guiicon +>Guardar</guiicon +> o <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Guardar</guimenuitem +></menuchoice +> para guardar la lista de reproducción en cualquier momento.</para> + +<sect1 id="collection-list-gui"> +<title +>La lista de canciones</title> + +<para +>Cuando esté viendo la lista de colecciones, el panel principal contendrá todos los archivos de los que &juk; tiene conocimiento. Cuando esté viendo una lista de reproducción, únicamente se mostrarán las canciones que se encuentre en esta lista. En cualquier caso, el aspecto y comportamiento de la lista es el mismo.</para> + +<para +>Cada canción ocupa una fila de la lista. Existe una columna para cada uno de los campos de metadatos de las pistas. Estas columnas se corresponden con los campos que es posible editar con el editor de etiquetas.</para> + +<para +>Puede reordenar la lista en cualquier momento pulsando con el &LMB; en la cabecera de la columna. Esto ordenará los archivos en orden ascendente basándose en el contenido de esta columna. Si pulsa nuevamente con el &LMB; en la misma cabecera, los archivos se reordenarán en orden descendente.</para> + +<para +>El tamaño inicial de las columnas se corresponde con la entrada más ancha disponible. Podrá redimensionar las columnas situando el cursor del ratón sobre el divisor de dos columnas. Cuando el cursor cambie la forma del puntero pulse con el &LMB; y arrástrelo en la dirección en la que desee redimensionar las columnas.</para> + +<para +>Puede reordenar las columnas pulsando con el &LMB; sobre una cabecera, y arrastrándola hacia la izquierda o hacia la derecha. No podrá arrastrar más allá del borde de la ventana, pero podrá desplazarla un poquito a la izquierda o a la derecha, y repetir el arrastre de la cabecera hasta que esté colocada en la posición deseada.</para> + +<para +>Puede ocultar o mostrar columnas pulsando sobre su cabecera con el &RMB;, y pulsar sobre el nombre de la columna para cambiarlo.</para> + +<para +>Una doble pulsación del &LMB; en un archivo lo reproducirá en el reproductor integrado. Si estaba reproduciendo otra canción, ésta parará, y sonará la nueva canción.</para> + +<para +>Pulsar el &RMB; sobre un archivo muestra varias opciones:</para> + +<variablelist> +<varlistentry> +<term +><guimenuitem +>Añadir a la cola de reproducción</guimenuitem +></term> +<listitem> +<para +>Iniciará la reproducción del archivo tan pronto como la canción que esté sonando finalice. Si no hay sonando ninguna canción, el archivo se reproducirá en el momento en el que se pulse el botón <guiicon +>Reproducir</guiicon +>. Si ya había seleccionado la opción Añadir a la cola de reproducción en un archivo diferente, se reproducirá el único seleccionado.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Cortar</guimenuitem +></term> +<term +><guimenuitem +>Copiar</guimenuitem +></term> +<term +><guimenuitem +>Pegar</guimenuitem +></term> +<listitem> +<para +>...</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Borrar</guimenuitem +></term> +<listitem> +<para +>Si está viendo la lista de colecciones, y selecciona <guimenuitem +>Borrar</guimenuitem +> eliminará el archivo de la lista, y eliminará todas las entradas para esta canción de todas las listas de reproducción. Debería tener en cuenta que si este archivo se encuentra en una carpeta que &juk; lee al inicio, volverá a ser añadido a la lista de colecciones la siguiente vez que inicie &juk;, pero no se añadirá de forma automática a ninguna lista de reproducción.</para> +<para +>Si está viendo una lista de reproducción, <guimenuitem +>Borrar</guimenuitem +> simplemente quitará la canción de la lista de reproducción.</para> + +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Editar</guimenuitem +></term> +<listitem> +<para +>Le permitirá editar la canción resaltada, en la columna sobre la que pulse. Por ejemplo, si no tiene el editor de etiquetas visible, y está ocupado creando una lista de reproducción, pero detecta que el nombre de un artista está mal escrito, puede editarlo directamente con este elemento del menú.</para> +<para +>Los cambios efectuados de esta forma se guardan siempre de forma inmediata tan pronto como pulse en otro sitio y finalice la edición.</para> +<para +>El elemento del menú se desactivará si &juk; detecta que la pista que ha seleccionado es de solo lectura.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Actualizar</guimenuitem +></term> +<listitem> +<para +>Recargará las etiquetas con la información de los archivos seleccionados, en el caso de que los archivos hubieran cambiado mientras estaba trabajando con &juk;.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Eliminar</guimenuitem +></term> +<listitem> +<para +>Eliminará el archivo de la lista de colecciones, eliminará todas las entradas de la canción de todas las listas de reproducción, y borrará el archivo de su disco. No podrá deshacer ésto, no obstante, se el pedirá confirmación de su elección. Utilice esto con cuidado.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guisubmenu +>Deducir datos de la etiqueta</guisubmenu +></term> +<listitem> +<para +>Hará que &juk; intente averiguar información tal como el artista y el título de una canción. &juk; emplea diferentes métodos para averiguarlo: <variablelist> + + <varlistentry +><term +><guimenuitem +>Del nombre del archivo.</guimenuitem +></term> + <listitem +><para +>&juk; intentará deducir las etiquetas de la canción basándose en el nombre del archivo. Por ejemplo, para un nombre de canción como <filename +>Roxette - You've Got the Look.mp3</filename +> le indicará que 'Roxette' es el artista y 'You'v Got the Look' es el título. Puede ajustar la forma en que &juk; deduce el contenido de las etiquetas a través de <menuchoice +><guimenu +>Preferencias</guimenu +><guimenuitem +>Deductor de etiquetas</guimenuitem +></menuchoice +>, que abrirá el <link linkend="juk-tag-guesser-configuration" +>Diálogo deductor de etiquetas</link +>. &juk; no reemplazará las etiquetas que no pueda deducir del nombre del archivo.</para> + </listitem> + </varlistentry> + + <varlistentry +><term +><guimenuitem +>De Internet.</guimenuitem +></term> + <listitem +><para +>&juk; intentará deducir las etiquetas de la canción utilizando el programa MusicBrainz. Debe tener MusicBrainz instalado para que esta orden funcione. </para> + </listitem> + </varlistentry> + + </variablelist> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Renombrar archivo</guimenuitem +></term> +<listitem> +<para +>Renombrará los archivos seleccionados de acuerdo con el formato proporcionado. Debería seleccionar en primer lugar la forma en que desea que sean renombrados los archivos seleccionando <menuchoice +><guimenu +>Preferencias</guimenu +><guimenuitem +>Renombrador de archivos...</guimenuitem +></menuchoice +> El nombre resultante de cada archivo está basado en sus etiquetas de metadatos. Por ejemplo, la canción Ogg Vorbis «The Theme (Metroid)» de Stemage debería dar como resultado <filename +>usr/share/music/Stemage/The Theme (Metroid).ogg</filename +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Crear lista desde los elementos seleccionados</guimenuitem +></term> +<listitem> +<para +>Permite crear listas de reproducción de forma rápida a partir de las canciones de su lista de colecciones. Esta función le pedirá un nombre para la nueva lista de reproducción, e insertará todas las canciones seleccionadas en la nueva lista de reproducción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Añadir los elementos seleccionados a un proyecto K3b</guimenuitem +></term> +<listitem> +<para +>Le permite crear de forma rápida un proyecto de grabación para K3b a partir de las canciones seleccionadas. &juk; le preguntará si desea crear un CD en modo audio o en modo datos, a menos que K3b ya tenga un proyecto abierto.</para> + +<para +>Si K3b no se está ejecutando, &juk; lo iniciará por usted. Después, &juk; añadirá sus archivos seleccionados al proyecto actual de K3b. A continuación puede guardar el proyecto en K3b para grabarlo posteriormente, o grabar el CD directamente. </para> + +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="juk-playlists"> +<title +>Listas de reproducción de &juk;</title> +<para +>Una lista de reproducción no es más que una colección de canciones agrupadas por alguna categoría. Por ejemplo, puede tener una lista de reproducción con las canciones que escucha mientras codifica, mientras intenta dormir, e incluso cuando necesite divertirse. &juk; soporta varios tipos de reproducción diferentes. </para> + +<variablelist> + +<varlistentry> +<term id="juk-normal-playlists" +>Listas de reproducción normales</term> +<listitem +><para +><inlinemediaobject +><imageobject +><imagedata format="PNG" fileref="normal-playlist.png"/></imageobject +></inlinemediaobject +> Es la más común de las listas de reproducción. Es una lista de reproducción compuesta de archivos, al igual que la lista de colecciones.</para +></listitem> +</varlistentry> + +<varlistentry> +<term id="juk-history-playlists" +>La lista de reproducción de historial</term> +<listitem +><para +><inlinemediaobject +><imageobject +><imagedata format="PNG" fileref="history-playlist.png"/></imageobject +></inlinemediaobject +> Si activa esta lista de reproducción (a través de <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar historial</guimenuitem +></menuchoice +>, esta lista de reproducción guardará cada canción que reproduzca &juk;. La lista de reproducción tendrá una columna extra, <guilabel +>Tiempo</guilabel +>, que guardará la fecha y hora exactas en que la canción se reprodujo. Esta lista de reproducción no comienza con el historial de las canciones hasta que no se active. </para +></listitem> +</varlistentry> + +<varlistentry> +<term id="juk-search-playlists" +>Listas de reproducción de búsqueda</term> +<listitem +><para +><inlinemediaobject +><imageobject +><imagedata format="PNG" fileref="search-playlist.png"/></imageobject +></inlinemediaobject +> Es una lista de reproducción basada en una búsqueda. Puede crear una lista de reproducción como esta pulsando en <menuchoice +> <guimenu +>Archivo</guimenu +><guisubmenu +>Nuevo</guisubmenu +><guimenuitem +>Lista desde búsqueda</guimenuitem +></menuchoice +>, o pulsando sobre el botón <link linkend="juk-advanced-search-dialog" +>Búsqueda avanzada</link +> en la <link linkend="search-bar" +>Barra de búsqueda</link +>.</para> +<para +>Después de crear esta lista de reproducción, solo dejará aquellas canciones de la lista de colecciones que coincidan con su criterio, y automáticamente las actualizará de acuerdo con los criterios proporcionados siempre que se produzcan cambios en la lista de colecciones.</para +></listitem> +</varlistentry> + +</variablelist> + +<para +>Las listas de reproducción se organizan en el <guilabel +>Panel de lista de reproducción</guilabel +>, que es la barra vertical de la izquierda. En este panel hay un icono por cada lista de reproducción que tenga. Existen diferentes modos de vista para este panel, que se pueden seleccionar a través del menú <guimenu +>Ver</guimenu +>-><guisubmenu +>Modos de visionado</guisubmenu +>. <variablelist> + +<varlistentry> +<term id="juk-viewmode-default" +>Modo de vista predeterminado</term> +<listitem> +<para +>Éste es el modo de vista predeterminado. En este modo, todas las listas de reproducción se muestran como iconos grandes, unos sobre otros. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="juk-viewmode-compact" +>Modo de vista compacto</term> +<listitem> +<para +>Este modo es similar al modo de vista normal, con la excepción de que las listas de reproducción se representan con barras horizontales con iconos pequeños en casillas cuadradas. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="juk-viewmode-tree" +>Modo de vista de árbol</term> +<listitem> +<para +>Éste es el modo más potente. Es similar al modo de vista compacto, salvo por el hecho de que la lista de colecciones es la raíz de un árbol de listas de reproducción virtuales. La lista de colecciones tiene tres nodos hijo, artista, álbum y género. Cada uno de estos nodos tiene nodos hijo representando todas las entradas de una categoría específica. Por ejemplo, si su lista de colecciones contiene música de 4 artistas diferentes, obtendrá 4 entradas bajo el nodo artista.</para> +<para +>Una característica interesante del modo de vista de árbol es algo llamado arrastrar y soltar reetiquetando. Seleccione algunos archivos de la lista de canciones, y arrástrelos dentro del nodo de un artista, álbum o género de la lista de colecciones. Las canciones se reetiquetarán automáticamente para hacerlas coincidir con el elemento sobre el que soltó las canciones. Por ejemplo, si arrastra un grupo de canciones sobre un género llamado «Rock», todas las pistas cambiarán su etiqueta Género por 'Rock'. </para> +</listitem> +</varlistentry> + +</variablelist> + +</para> + +</sect1> + +<sect1 id="juk-tagger"> +<title +>El editor de etiquetas de &juk;</title> + +<para +>Para muchos formatos de archivo, es práctico utilizar el nombre del archivo para describir el contenido de dicho archivo: «<filename +>Informe del consejo - Junio 2003.doc</filename +>», por ejemplo, puede ser toda la información que se necesite para encontrar nuevamente este archivo. Intentar averiguar toda la información práctica para una canción en particular, sin embargo, puede dar como resultado un nombre como este: «<filename +>Tipo O Negativo - La gloriosa liberación de los pueblos de la República Tecnocrática de Vinnland por las fuerzas combinadas de las tierras unidas de Europa Europa.mp3</filename +>» o «<filename +> Varios artistas_15_Colección de música clásica de Jazz del Smithsonian Volumen II_Jimmie Lunceford y orquesta - Organista del ritmo.mp3</filename +>». Estos no son muy prácticos de utilizar y tampoco contienen toda la información práctica que pueda haber averiguado sobre la canción. Añadir el álbum y el número de pista al principio, por ejemplo, puede hacerlo demasiado grande e inmanejable, mientras que no añadírselo no le dirá nada al cabo de un año, y un primer vistazo no le indicará a qué estilo de música pertenece si no está familiarizado con el artista.</para> + +<para +>Entonces la solución es guardar este tipo de metadatos dentro de los propios archivos. Los archivos mp3 y ogg pueden también contener pequeños trozos de texto que puede utilizar para describir el contenido del archivo. Existen varios formatos, pero &juk; oculta los detalles de las diferencias entre ellos, y proporciona una forma estándar de editar o de ver las etiquetas para todos sus archivos de audio.</para> + +<para +>&juk; es un editor de etiquetas completo que le permite editar las etiquetas de los archivos mp3 y ogg. Puede editar archivos individuales o múltiples archivos, y puede seleccionar para editarlos una mezcla de archivos mp3 y ogg. El único requisito es que tenga acceso de escritura a los archivos. No podrá editar las etiquetas de un archivo que se encuentre en un &CD-ROM;, por ejemplo.</para> + +<sect2 id="tagging-a-single-file"> +<title +>Editar las etiquetas en un archivo individual</title> + +<para +>Para editar las etiquetas en un archivo individual, selecciónelo en la lista de colecciones o en cualquiera de las listas de reproducción. Si el editor de etiquetas no está visible, actívelo seleccionando <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar el editor de etiquetas</guimenuitem +></menuchoice +>. El editor de etiquetas se mostrará en la parte inferior de la vista de lista.</para> + +<para +>Solo tiene que teclear en los campos editables para cambiar la información. Cuando lo haya hecho, pulse con el &LMB; en la lista, y se le preguntará si desea guardar los cambios.</para> + +<para +>Puede ser que el editor de etiquetas esté desactivado cuando pulse sobre un archivo. Esto sucede cuando &juk; detecta que la pista es de solo lectura.</para> + +<variablelist> +<title +>Etiquetas del editor de campos</title> +<varlistentry> +<term +><guilabel +>Nombre del artista:</guilabel +></term> +<listitem> +<para +>Es el nombre(s) del(os) artísta(s) que interpretan la canción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Nombre de la pista:</guilabel +></term> +<listitem> +<para +>El nombre de la canción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Nombre del álbum:</guilabel +></term> +<listitem> +<para +>El nombre del álbum en el que se publicó la canción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Género:</guilabel +></term> +<listitem> +<para +>El «estilo» de la música. &juk; proporciona una lista que se corresponde aproximadamente con el estándar informal id3, pero es libre de teclear sus propias entradas en esta lista.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Nombre de archivo:</guilabel +></term> +<listitem> +<para +>El nombre de archivo del archivo actual en el disco. Puede editarlo directamente, y cuando lo guarde, se renombrará el archivo.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Pista:</guilabel +></term> +<listitem> +<para +>La posición de la pista en la grabación original.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Año:</guilabel +></term> +<listitem> +<para +>El año en que se publicó la canción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Duración:</guilabel +></term> +<listitem> +<para +>Este campo no es editable, simplemente se muestra para informar.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Frecuencia de bits:</guilabel +></term> +<listitem> +<para +>Este campo no es editable, simplemente se muestra para informar.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Comentario:</guilabel +></term> +<listitem> +<para +>Puede añadir su propio comentario aquí, con notas adicionales, &etc;</para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Puede guardar los cambios de forma explícita e inmediata en cualquier momento utilizando la entrada de menú <menuchoice +><guimenu +>Etiquetador</guimenu +><guimenuitem +>Guardar</guimenuitem +></menuchoice +> o pulsando <keycombo action="simul" +>&Ctrl;<keycap +>T</keycap +></keycombo +>.</para> + +</sect2> + +<sect2 id="tagging-multiple-files"> +<title +>Editar etiquetas de varios archivos</title> + +<para +>Puede seleccionar varios archivos en la vista de lista y editar uno o más campos de etiquetas para todos los archivos a la vez.</para> + +<para +>Utilice <keycap +>Mayúsculas</keycap +> y el &LMB; para seleccionar una lista contigua de archivos, y &Ctrl; y el &LMB; para seleccionar archivos individuales no contiguos.</para> + +<para +>Si el editor de etiquetas no está visible, puede activarlo seleccionando <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar editor de etiquetas</guimenuitem +></menuchoice +>. El editor de etiquetas se muestra en la parte inferior de la vista de lista.</para> + +<para +>El editor de etiquetas se comporta un poco diferente cuando tiene seleccionados varios archivos.</para> + +<para +>Cada campo del editor de etiquetas mostrará una casilla <guilabel +>Habilitar</guilabel +> a su lado. Cualquier campo que tenga exactamente el mismo contenido para todos los archivos seleccionados, mostrará su contenido, y podrá editarlo, si está la casilla <guilabel +>Habilitar</guilabel +> marcada.</para> + +<!-- put screeny here --> + +<para +>Cualquier campo cuyo contenido no coincida completamente para todos los archivos seleccionados no será inicialmente editable, y no mostrará ningún contenido.</para> + +<para +>Para cambiar el contenido de cualquier campo, marque la casilla <guilabel +>Habilitar</guilabel +> si es que no lo está, y edite el campo como lo haría normalmente.</para> + +<para +>Cuando lo haya hecho, pulse con el &LMB; en la vista de lista y se le preguntará si quiere guardar sus cambios. El diálogo con la pregunta mostrará una lista de los archivos a los que afecta, de forma que podrá comprobar que ha modificado los archivos que deseaba modificar.</para> + +<para +>Puede guardar los cambios de forma explícita e inmediata en cualquier momento utilizando la entrada de menú <menuchoice +><guimenu +>Etiquetador</guimenu +><guimenuitem +>Guardar</guimenuitem +></menuchoice +> o pulsando <keycombo action="simul" +>&Ctrl;<keycap +>T</keycap +></keycombo +>.</para> + +</sect2> + +</sect1> + +<sect1 id="juk-rename-dialog"> +<title +>El diálogo del renombrador de archivos</title> +<para> +<screenshot> +<screeninfo +>El diálogo del renombrador de archivos</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="juk-file-renamer.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla del diálogo del renombrador de archivos.</phrase> + </textobject> + </mediaobject> +</screenshot> +</para> + +<para +>El cuadro de diálogo de configuración del renombrador de archivos se utiliza para configurar la actuación del renombrador, que renombra una canción basándose en la información contenida en sus etiquetas de metadatos. En primer lugar las etiquetas se modifican de acuerdo a los diferentes elementos que ha cambiado, y a continuación se utilizan para generar el nombre del archivo de acuerdo con el <guilabel +>Esquema de nombre de archivo</guilabel +>. </para> + +<para +>La parte más importante del diálogo es la sección <guilabel +>Esquema de nombre de archivo</guilabel +>. Aquí podrá teclear un esquema de nombre de archivo que &juk; utilizará para renombrar los archivos. Para efectuar su trabajo utiliza algunos caracteres especiales. </para> + +<para +><variablelist> +<varlistentry> +<term +>%t</term> +<listitem +><para +>Se reemplazará con el título tras la evaluación.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>%a</term> +<listitem +><para +>Se reemplazará con el artista tras la evaluación.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>%A</term> +<listitem +><para +>Se reemplazará con el álbum tras la evaluación.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>%T</term> +<listitem +><para +>Se reemplazará con la pista tras la evaluación.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>%c</term> +<listitem +><para +>Se reemplazará con el comentario tras la evaluación.</para> +</listitem> +</varlistentry> + +</variablelist> +</para> + +<para +>Cada uno de los elementos puede contener %s, que se reemplazará con la etiqueta actual, y cualquier texto que desee, incluído (/). Si un elemento tiene una barra, puede indicar un separador de directorio. Por supuesto, sería posible simplificar los tipos de separadores de directorio en la línea <guilabel +>Esquema de nombre de archivo</guilabel +>.</para> + +<para +>Utilizar los elementos, sin embargo, le permitirá ignorar completamente las etiquetas vacías. Si marca la casilla <guilabel +>Valor necesario</guilabel +>, el elemento se ignorará si la etiqueta está vacía. Por ejemplo, podría utilizar esto para separar archivos con comentarios de aquellos que no los tienen colocando algo como <replaceable +>tiene-comentario/%s</replaceable +> para editar el <guilabel +>Comentario</guilabel +>.</para> + +<para +>Puede comprobar su esquema de nombre de archivo utilizando el editor del <guilabel +>Nombre de archivo actual</guilabel +> en la parte inferior del diálogo. Teclee un nombre de archivo de un archivo de música, y el área <guilabel +>Nuevo nombre de archivo</guilabel +> mostrará cual será el nombre que &juk; utilizará para renombrar el archivo con las preferencias actuales. </para> +</sect1> + +<sect1 id="juk-tag-guesser-configuration"> +<title +>El diálogo de configuración del deductor de etiquetas</title> +<para> +<screenshot> +<screeninfo +>El diálogo de configuración del deductor de etiquetas</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="juk-tag-guesser.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla del diálogo de configuración del deductor de etiquetas.</phrase> + </textobject> + </mediaobject> +</screenshot> +</para> + +<para +>El diálogo de configuración del deductor de etiquetas se utiliza para configurar la orden de deducción de etiquetas a partir del nombre del archivo.</para> + +<para +>En el diálogo podrá ver en la parte izquierda una lista con diferentes modelos de esquemas de nombre de archivo. &juk; incluye un extenso conjunto de modelos predeterminados que coinciden con la mayor parte de los estilos para nombrar los archivos. Si desea añadir un esquema nuevo, pulse en el botón <guibutton +>Añadir</guibutton +>, y teclee su esquema, y por último pulse en <guibutton +>Aceptar</guibutton +>. Puede utilizar los mismos atributos definidos en el <link linkend="juk-rename-dialog" +>Diálogo de configuración del renombrador</link +>. </para> + +<para +>&juk; probará los esquemas listados de uno en uno, comenzando por el de la parte superior de la lista. El primer esquema que coincida será el utilizado por el deductor de etiquetas de las canciones. Algunas canciones pueden coincidir con más de un esquema. Puede asegurarse de que el primer esquema correcto es el que se va a seleccionar utilizando los botones de las flechas para moverlo arriba y abajo en la lista. </para> + +<para +>Puede editar o eliminar un esquema de la lista. Seleccione el esquema en la lista, y utilice el botón <guibutton +>Modificar</guibutton +> para cambiar el esquema, o el botón <guibutton +>Eliminar</guibutton +> para eliminar el esquema de la lista. </para> +</sect1> + +<sect1 id="juk-advanced-search-dialog"> +<title +>El diálogo de búsqueda avanzada</title> +<para> +<screenshot> +<screeninfo +>El diálogo de búsqueda avanzada</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="juk-adv-search.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla del diálogo de búsqueda avanzada.</phrase> + </textobject> + </mediaobject> +</screenshot> +</para> + +<para +>El diálogo de búsqueda avanzada se utiliza para crear la <link linkend="juk-search-playlists" +>Lista de reproducción desde búsqueda</link +>. Le permite crear un búsqueda refinada a través de diferentes etiquetas de su colección de canciones.</para> + +<para +>En la parte superior del diálogo, puede teclear el nombre de la lista de reproducción desde búsqueda. A continuación, puede definir sus criterios de búsqueda en el grupo <guilabel +>Criterios de búsqueda</guilabel +>. </para> + +<para +>La parte superior del grupo <guilabel +>Criterios de búsqueda</guilabel +> tiene dos botones de radio, <guilabel +>Cumplir cualquiera de las condiciones</guilabel +> y <guilabel +>Cumplir todas las condiciones</guilabel +>. Si selecciona <guilabel +>Cumplir cualquiera de las condiciones</guilabel +>, entonces se incluirán en la lista de reproducción aquellas canciones que cumplan cualquiera de las condiciones definidas. En otro caso, para que una canción se incluya en la lista de reproducción debe cumplir todas las condiciones. </para> + +<para +>Bajo los botones de radio se encuentran las definiciones de las condiciones. Puede añadir más condiciones utilizando el botón <guibutton +>Más</guibutton +>, y eliminar condiciones utilizando el botón <guibutton +>Menos</guibutton +>. Cualquier condición que deje en blanco se ignorará, por eso, no necesitará utilizar el botón <guibutton +>Menos</guibutton +> para eliminar las condiciones vacías. </para> + +<para +>Cada definición de condición tiene tres partes: La lista para seleccionar las etiquetas en la parte izquierda, El estilo de búsqueda en la derecha, y el texto a buscar en el centro. El selector de etiquetas permite que &juk; sepa en qué etiqueta desea buscar el campo introducido. Si selecciona la etiqueta especial «<Todo visible>», cualquier etiqueta que pueda ver en la lista de colecciones es candidata para que se haga una búsqueda sobre ella. </para> + +<para +>El estilo de búsqueda le indica a &juk; qué método de búsqueda utilizar. Los métodos de búsqueda que puede utilizar son los siguientes: <variablelist> +<varlistentry> +<term +>Búsqueda normal</term> +<listitem +><para +>Es el estilo de búsqueda predeterminado. Busca el texto proporcionado en cualquier parte de la etiqueta seleccionada, ignorando las diferencias entre mayúsculas y minúsculas. Por ejemplo, si busca 'mode' en la etiqueta artista podría dar como resultado 'Depeche Mode'.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +>Distinguir mayúsculas</term> +<listitem +><para +>Es similar a la búsqueda normal, salvo por el hecho de que la búsqueda debe coincidir también en mayúsculas y minúsculas, con el texto.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +>Búsqueda de patrones</term> +<listitem +><para +>Es el método de búsqueda más potente. El texto que teclee podrá definir una expresión regular, que se utilizará para efectuar la búsqueda en las etiquetas. Las expresiones regulares están más allá del ámbito de esta documentación, pero la aplicación &kregexpeditor; puede ayudarle a construir expresiones regulares. &juk; utiliza el estilo de expresiones regulares de Qt.</para +></listitem> +</varlistentry> + +</variablelist> + +</para> + +<para +>Solo tiene que seleccionar las condiciones que desea incluir en su búsqueda, y pulsar el botón <guibutton +>Aceptar</guibutton +> para crear su lista de reproducción de búsqueda. </para> +</sect1> + +</chapter> + +<chapter id="toolbar-reference"> +<title +>La barra de herramientas de &juk;</title> + +<sect1 id="main-toolbar"> +<title +>La barra de herramientas principal</title> + +<screenshot> +<screeninfo +>La barra de herramientas de &juk;.</screeninfo> +<mediaobject> +<imageobject> +<imagedata format="PNG" fileref="toolbar.png"/> +</imageobject> +<textobject> +<phrase +>La barra de herramientas de &juk;.</phrase> +</textobject> +<caption +><para +>La barra de herramientas de &juk;.</para +></caption> +</mediaobject> +</screenshot> + +<para +>De izquierda a derecha en la captura de pantalla superior, los iconos predeterminados en la barra de herramientas son:</para> + +<variablelist> +<varlistentry> +<term +><guiicon +>Nueva</guiicon +></term> +<listitem +><para +>Crea una lista de reproducción nueva. Si mantiene pulsado el botón, aparecerá un menú que le permitirá seleccionar las diferentes listas de reproducción que es posible crear. </para> + <variablelist> + <varlistentry +><term +><guimenuitem +>Lista de reproducción vacía...</guimenuitem +></term> + <listitem +><para +>Se le pedirá el nombre de la lista de reproducción, y lo incluye en la vista de lista de reproducción. La lista de reproducción iniciada está completamente vacía.</para +></listitem> + </varlistentry> + + <varlistentry +><term +><guimenuitem +>Lista desde una carpeta...</guimenuitem +></term> + <listitem +><para +>Se le pedirá la carpeta que ha de abrirse, y a continuación se crea una lista de reproducción conteniendo la música incluída en esta carpeta y en sus subcarpetas. El nombre de la lista de reproducción creada es el mismo que el de la carpeta seleccionada.</para +></listitem> + </varlistentry> + + <varlistentry +><term +><guimenuitem +>Lista desde búsqueda...</guimenuitem +></term> + <listitem +><para +>Hará aparecer el diálogo de búsqueda avanzada, que le permitirá crear una «lista de reproducción virtual». Cualquier canción de su lista de colecciones que coincida con los criterios de búsqueda que especifique en el diálogo de búsqueda avanzada se añadirá a la nueva lista de reproducción. Por ejemplo, si crea una lista de reproducción con todas las canciones de 'Depeche Mode', y añade otra canción de 'Depeche Mode' a su lista de colecciones, éste se mostrará en la lista de reproducción de 'Depeche Mode' sin que necesite hacer nada especial por su parte. </para +></listitem> + </varlistentry> + + </variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Abrir</guiicon +></term> +<listitem +><para +>Añade un archivo a la lista de colecciones (si está activa) o a la lista de reproducción que esté seleccionada. Añadir un archivo a una lista de reproducción, lo añadirá automáticamente a la lista de colecciones, pero no sucede lo mismo a la inversa.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Guardar</guiicon +></term> +<listitem +><para +>Guarda la lista de reproducción seleccionada. Para guardar una etiqueta que esté editando, seleccione otro elemento o pulse <keycombo action="simul" +>&Ctrl;<keycap +>T</keycap +></keycombo +>.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Cortar</guiicon +></term> +<listitem +><para +>Si está seleccionada una lista de reproducción o una canción, la cortará (eliminará) de la lista. Si está activado el editor de etiquetas, funcionará como cortar en cualquier editor, eliminando el texto seleccionado, y enviando una copia al portapapeles.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Copiar</guiicon +></term> +<listitem +><para +>Si el editor de etiquetas está activo, funcionará como copiar en cualquier editor, colocando una copia del texto seleccionado en el portapapeles.</para> +<para +>Si utiliza copiar una canción en la lista de colecciones, lo que se colocará en el portapapeles es la url, de forma que pueda pegarla. Por ejemplo, puede pegar la url en un editor de texto, en &konqueror; o en otra lista de reproducción.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Pegar</guiicon +></term> +<listitem +><para +>Si previamente se había cortado o copiado una url de una lista de colecciones, puede pegar la url en una nueva lista de reproducción. También puede pegar una url que haya copiado anteriormente de &konqueror; o de cualquier otra aplicación. Si está trabajando con el editor de etiquetas, pegar hará que se pegue cualquier texto que se encuentre en el portapapeles en el campo seleccionado.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Mostrar barra de búsqueda</guiicon +></term> +<listitem +><para +>Muestra u oculta <link linkend="search-bar" +>la barra de búsqueda</link +>.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Muestra el editor de etiquetas</guiicon +></term> +<listitem +><para +>Muestra u oculta <link linkend="tagging-a-single-file" +>el editor de etiquetas</link +>.</para +></listitem> +</varlistentry> + +<varlistentry id="play-toolbar"> +<term +>Controles de reproducción</term> +<listitem> +<para +>Funcionan como cualquier reproductor de medios estándar que pueda tener. Los controles son <guiicon +>Reproducir</guiicon +>, <guiicon +>Pausa</guiicon +>, <guiicon +>Parar</guiicon +>, <guiicon +>Pista anterior</guiicon +> y <guiicon +>Pista siguiente</guiicon +>.</para> +<para +>También existe una barra de reproducción, que muestra el punto (relativo) en el que está reproduciéndose la canción. Puede arrastrar el deslizador con el ratón para ir hacia delante y hacia atrás en la pista.</para> +<para +>Finalmente existe un deslizador de volumen. Como puede imaginar, puede aumentar y disminuir el volumen. «Alto» hacia la derecha, y «Bajo» hacia la izquierda.</para +></listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="search-bar"> +<title +>La barra de búsqueda</title> + +<para +>La barra de búsqueda le permite buscar rápidamente una canción en la lista de colecciones o en una lista de reproducción.</para> + +<para +>Al teclear texto en la barra de búsqueda reducirá la lista visible de canciones, dejando tan solo aquellas que contengan el texto en cualquier columna visible. Pulsar <keycap +>Entrar</keycap +> iniciará la reproducción de la canción que esté en la parte superior de la vista de la lista de reproducción.</para> + +<para +>La búsqueda comienza instantáneamente cuando introduce el texto en el campo de búsqueda. La búsqueda es incremental, esto es, según va tecleando cada caracter en el campo de texto, se va reduciendo la búsqueda. Es práctico para encontrar una canción de la que solo conozca una parte del nombre, por ejemplo.</para> + +<para +>Si quiere realizar una búsqueda más refinada, puede pulsar el botón de Búsqueda avanzada a la derecha de la barra de búsqueda, que le permitirá crear una lista de reproducción virtual. Si desea cancelar la búsqueda, puede pulsar el botón Vaciar búsqueda a la izquierda de la barra de búsqueda.</para> + +</sect1> + +</chapter> + +<chapter id="menu-and-command-reference"> +<title +>Referencia de menús y de órdenes</title> + +<sect1 id="menus"> +<title +>Menús</title> + +<sect2 id="menu-file"> +<title +>Menú <guimenu +>Archivo</guimenu +></title> + +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +>&Ctrl;<keycap +>N</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +><guisubmenu +>Nueva</guisubmenu +><guimenuitem +>Lista de reproducción vacía...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Crea una lista de reproducción nueva.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +>&Ctrl;<keycap +>D</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +><guisubmenu +>Nueva</guisubmenu +><guimenuitem +>Lista desde una carpeta...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Crea una lista de reproducción nueva, conteniendo todos los archivos de música de una carpeta y de sus subcarpetas. También se añadirá el contenido de las listas de reproducción que encuentre y que sean reconocidas por &juk;.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +>&Ctrl;<keycap +>F</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +><guisubmenu +>Nueva</guisubmenu +><guimenuitem +>Lista desde búsqueda...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Crea una nueva <link linkend="juk-search-playlists" +>lista de reproducción desde una búsqueda</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>O</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +> <guimenuitem +>Abrir...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Seleccione un archivo (o archivos) para añadirlos a lista de colecciones. Si selecciona un archivo de lista de reproducción, se añadirá cada uno de los archivos que se encuentren en la lista de reproducción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Añadir carpeta...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Seleccione una carpeta (o carpetas) para añadirla a la lista de colecciones. Estas carpetas se volverán a leer cada vez que se inicie &juk; o seleccionando <menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Recargar</guimenuitem +> </menuchoice +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Archivo</guimenu +> <guimenuitem +>Renombrar...</guimenuitem +></menuchoice> +</term> +<listitem +><para +>Renombra una lista de reproducción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Duplicar...</guimenuitem +></menuchoice> +</term> +<listitem +><para +>Crea un duplicado de la lista de reproducción seleccionada, y le pide que la de un nombre. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Recargar</guimenuitem +></menuchoice> +</term> +<listitem +><para +>Vuelve a leer las etiquetas de información de cada archivo de la lista de reproducción seleccionada. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Eliminar</guimenuitem +></menuchoice +></term> +<listitem +><para +>Elimina la lista de reproducción seleccionada.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +>&Ctrl;<keycap +>S</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +><guimenuitem +>Guardar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Guarda la lista de reproducción seleccionada.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Archivo</guimenu +><guimenuitem +>Guardar como...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Guarda la lista de reproducción seleccionada con un nombre diferente.</para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2 id="menu-edit"> +<title +>El menú <guimenu +>Editar</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><guimenu +>Editar</guimenu +><guimenuitem +>Borrar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Elimina las canciones seleccionadas de la lista de reproducción.</para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2 id="menu-view"> +<title +>El menú <guimenu +>Ver</guimenu +></title> + +<variablelist> +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar barra de búsquedas</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Muestra u oculta la <link linkend="search-bar" +>Barra de búsquedas</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar editor de etiquetas</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Muestra u oculta el <interface +>Editor de etiquetas</interface +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar historial</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Muestra u oculta el <link linkend="juk-history-playlists" +>Historial de reproducción</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guisubmenu +>Modos de visionado</guisubmenu +><guimenuitem +>Predeterminado</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Cambia al <link linkend="juk-viewmode-default" +>Modo de vista predeterminado</link +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guisubmenu +>Modos de visionado</guisubmenu +><guimenuitem +>Compacto</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Cambia al <link linkend="juk-viewmode-compact" +>Modo de vista compacto</link +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guisubmenu +>Modo de visionado</guisubmenu +><guimenuitem +>Árbol</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Cambia al <link linkend="juk-viewmode-tree" +>Modo de vista de árbol</link +>. </para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2 id="menu-player"> +<title +>El menú <guimenu +>Reproductor</guimenu +></title> + +<variablelist> +<varlistentry> +<term +><menuchoice +><guimenu +>Reproductor</guimenu +><guimenuitem +>Reproducción aleatoria</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta opción controla la reproducción aleatoria. Si está activada, &juk; seleccionará de forma aleatoria una canción de la lista de reproducción actual cuando termine de sonar la canción que se esté reproduciendo.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Reproductor</guimenu +><guimenuitem +>Realizar bucle</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Activa o desactiva la reproducción en bucle. Si la reproducción en bucle está activada, &juk; comenzará a reproducir la lista por el principio cuando haya terminado de reproducir la última canción de la lista de reproducción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Reproductor</guimenu +><guimenuitem +>Reproducir</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta orden inicia la reproducción de la canción seleccionada, o continúa con ella si ésta se había parado.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Reproductor</guimenu +><guimenuitem +>Pausa</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Para la canción que se está reproduciendo. Utilice la orden reproducir para continuar con la reproducción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Reproductor</guimenu +><guimenuitem +>Parar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Para la canción que se está reproduciendo. No podrá continuar la reproducción en el punto donde la paró después de pararla.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Reproductor</guimenu +><guimenuitem +>Pista anterior</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Reproduce la canción que se reprodujo antes de la que está sonando en este momento.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Reproducir</guimenu +><guimenuitem +>Pista siguiente</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Reproduce la siguiente canción después de la actual de la lista de reproducción.</para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2 id="menu-tagger"> +<title +>El menú <guimenu +>Etiquetador</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +><keycap +>Ctrl</keycap +><keycap +>T</keycap +></keycombo +></shortcut +> <guimenu +>Etiquetador</guimenu +><guimenuitem +>Guardar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Guarda cualquier cambio en las etiquetas que esté editando. Normalmente, los cambios no se guardan hasta que no se deselecciona el archivo que está editando.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Etiquetador</guimenu +><guimenuitem +>Eliminar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Borra los archivos seleccionados de la lista de colecciones y de las listas de reproducción que lo contengan, y por último borra los archivos seleccionados del disco. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +><keycap +>Ctrl</keycap +><keycap +>F</keycap +></keycombo +></shortcut +> <guimenu +>Etiquetador</guimenu +><guisubmenu +>Deducir datos de la etiqueta</guisubmenu +><guimenuitem +>Desde un nombre de archivo</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Intenta deducir las etiquetas de los archivos seleccionados a partir del nombre del archivo. Puede configurar los patrones a utilizar seleccionando <menuchoice +><guimenu +>Preferencias</guimenu +> <guimenuitem +>Deductor de etiquetas...</guimenuitem +></menuchoice +>, que abrirá el <link linkend="juk-tag-guesser-configuration" +>Diálogo de configuración del deductor de etiquetas</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +><keycap +>Ctrl</keycap +><keycap +>I</keycap +></keycombo +></shortcut +> <guimenu +>Etiquetador</guimenu +><guisubmenu +>Deducir datos de la etiqueta</guisubmenu +><guimenuitem +>Desde Internet</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Intenta deducir las etiquetas de los archivos seleccionados utilizando el <application +>trm</application +> proporcionado con <ulink url="http://www.musicbrainz.org/" +>MusicBrainz</ulink +>.</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect2> + +<sect2 id="menu-settings"> +<title +>El menú <guimenu +>Preferencias</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><guimenu +>Preferencias</guimenu +><guisubmenu +>Barra de herramientas</guisubmenu +> <guimenuitem +>Barra de herramientas principal (Juk)</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Muestra u oculta la <link linkend="main-toolbar" +>Barra de herramientas principal</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Preferencias</guimenu +><guisubmenu +>Barra de herramientas</guisubmenu +> <guimenuitem +>Barra de herramientas de reproducción (Juk)</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Muestra u oculta la <link linkend="play-toolbar" +>Barra de herramientas de reproducción</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Preferencias</guimenu +> <guimenuitem +>Mostrar logo de inicio al arrancar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Activa o desactiva esta opción. Si está activada, &juk; mostrará una pantalla informativa al inicio mientras se carga su colección de música.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Preferencias</guimenu +> <guimenuitem +>Anclar en la bandeja del sistema</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Si está activada, &juk; se mostrará un icono en la bandeja del sistema. Puede utilizar el icono de la bandeja del sistema para ver si &juk; está reproduciendo, y controlar la reproducción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Preferencias</guimenu +> <guimenuitem +>Mantener en la bandeja del sistema al cerrar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Si está activada, &juk; continuará ejecutándose aunque se cierre la ventana principal. La opción Anclar a la bandeja del sistema también se puede activar. Para cerrar &juk;, utilice la orden <menuchoice +><guimenu +>Archivo</guimenu +> <guimenuitem +>Salir</guimenuitem +></menuchoice +> en la ventana principal, o la orden <guimenuitem +>Salir</guimenuitem +> del menú contextual de la bandeja del sistema.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Preferencias</guimenu +> <guimenuitem +>Anunciar las pistas</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Si está activada, &juk; mostrará un indicador cuando comienza a reproducirse una canción, con información sobre el artista y el título, y con botones que le permitirán saltar rápidamente a otra canción. La opción anclar en la bandeja del sistema debe estar activada.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Preferencias</guimenu +> <guimenuitem +>Deductor de etiquetas...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta orden abre el <link linkend="juk-tag-guesser-configuration" +>cuadro de diálogo del deductor de etiquetas</link +>, en el que puede modificar los patrones que se utilizarán para deducir la información de las etiquetas a partir de los nombres de los archivos.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Preferencias</guimenu +> <guimenuitem +>Renombrador de archivos...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta orden abre el <link linkend="juk-rename-dialog" +>cuadro de diálogo del configurador del renombrador de archivos</link +>, en el que puede modificar la forma en que &juk; renombra los archivos para usted.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Preferencias</guimenu +> <guimenuitem +>Configurar accesos rápidos...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Abre el cuadro de diálogo estándar de KDE en el que puede configurar los accesos rápidos del teclado para &juk;. De forma predeterminada se incluyen valores razonables, incluyendo teclas multimedia para la gente que tiene teclados multimedia.</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect2> + +</sect1> + +<sect1 id="keybindings"> +<title +>Referencia de teclas asociadas</title> + +<!-- +ctrl-a select all +ctrl-c copy +ctrl-r rename file +ctrl-i guess tag entries from internet +ctrl-f guess tag entries based on filename +ctrl-f new search playlist +ctrl-n new empty playlist +ctrl-d new playlist from folder +ctrl-o open file (add to the collection or a playlist) +ctrl-q quit +ctrl-s save +ctrl-t save edited tag information +ctrl-v paste +ctrl-x cut +f1 Show manual +shift-f1 what's this help + +--> +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Combinación de teclas</entry> +<entry +>Acción</entry> +</row> +</thead> +<tbody> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>A</keycap +></keycombo +></entry> +<entry +>Seleccionar todo.</entry> +</row> +<row> +<entry +><keycombo action="simul" +>&Ctrl;<keycap +>C</keycap +></keycombo +></entry> +<entry +>Copiar.</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>R</keycap +></keycombo +></entry> +<entry +>Renombrar archivo.</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>I</keycap +></keycombo +></entry> +<entry +>Deducción de etiquetas desde Internet.</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>G</keycap +></keycombo +></entry> +<entry +>Deducción de etiquetas desde el nombre del archivo.</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>F</keycap +></keycombo +></entry> +<entry +>Nueva <link linkend="juk-search-playlists" +>lista de reproducción de búsqueda</link +>.</entry> +</row> +<row> +<entry +><keycombo action="simul" +>&Ctrl;<keycap +>G</keycap +></keycombo +></entry> +<entry +>Deduce las etiquetas de las entradas a partir del nombre del archivo.</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>N</keycap +></keycombo +></entry> +<entry +>Nueva lista de reproducción vacía.</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>D</keycap +></keycombo +></entry> +<entry +>Nueva lista de reproducción a partir de una carpeta.</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>T</keycap +></keycombo +></entry> +<entry +>Guarda los cambios de las etiquetas editadas.</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +</sect1> +</chapter> + +<chapter id="credits-and-licenses"> +<title +>Créditos y licencias</title> + +<para +>Derechos de autor de &juk;. © 2002, 2003, 2004. Scott Wheeler.</para> + +<para +>&juk; está desarrollado y mantenido por Scott Wheeler <email +>[email protected]</email +>.</para> + +<para +>Muchas gracias a las siguientes personas que han contribuido a &juk;:</para> + +<itemizedlist> +<listitem +><para +>Daniel Molkentin <email +>[email protected]</email +> por el sistema de anclaje a la bandeja del sistema, la edición de etiquetas «en línea», eliminación de fallos, evangelismo, soporte moral.</para> +</listitem> +<listitem +><para +>Tim Jansen <email +>[email protected]</email +> por el portado de <application +>GStreamer</application +>.</para> +</listitem> + +<listitem +><para +>Stefan Asserhäll <email +>[email protected]</email +> por el soporte global de las asignaciones de teclas.</para> +</listitem> + +<listitem +><para +>Stephen Douglas <email +>[email protected]</email +> por los mensajes de anunciar las pistas.</para> +</listitem> + +<listitem +><para +>Frerich Raabe <email +>[email protected]</email +> por el sistema de deducción de pistas y la eliminación de errores.</para> +</listitem> + +<listitem +><para +>Zack Rusin <email +>[email protected]</email +> por muchas cosas interesantes, incluyendo el soporte para MusicBrainz.</para> +</listitem> + +<listitem +><para +>Adam Treat <email +>[email protected]</email +> por conspirar en el asistente de MusicBrainz.</para> +</listitem> + +<listitem +><para +>Matthias Kretz <email +>[email protected]</email +> por ser el amistoso vecino gurú de aRts.</para> +</listitem> + +<listitem +><para +>Maks Orlovich <email +>[email protected]</email +> por hacer &juk; sencillo para la gente con terabytes de música.</para> +</listitem> + +<listitem +><para +>Antonio Larrosa Jimenez <email +>[email protected]</email +> por la interfaz DCOP.</para> +</listitem> + +</itemizedlist> + +<para +>Derechos de autor de la documentación. © 2003. Lauri Watts. © 2004. Michael Pyne.</para> + +<para +>Traducido por Santiago Fernández Sancho <email +>[email protected]</email +>.</para +> +&underFDL; &underGPL; </chapter> + +&documentation.index; + +</book> +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: +--> diff --git a/tde-i18n-es/docs/tdemultimedia/juk/juk-adv-search.png b/tde-i18n-es/docs/tdemultimedia/juk/juk-adv-search.png Binary files differnew file mode 100644 index 00000000000..8ca27341178 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/juk-adv-search.png diff --git a/tde-i18n-es/docs/tdemultimedia/juk/juk-file-renamer.png b/tde-i18n-es/docs/tdemultimedia/juk/juk-file-renamer.png Binary files differnew file mode 100644 index 00000000000..a0bc4c8555a --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/juk-file-renamer.png diff --git a/tde-i18n-es/docs/tdemultimedia/juk/juk-main.png b/tde-i18n-es/docs/tdemultimedia/juk/juk-main.png Binary files differnew file mode 100644 index 00000000000..ccbab5a3e1f --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/juk-main.png diff --git a/tde-i18n-es/docs/tdemultimedia/juk/juk-tag-guesser.png b/tde-i18n-es/docs/tdemultimedia/juk/juk-tag-guesser.png Binary files differnew file mode 100644 index 00000000000..e258dd0e45d --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/juk-tag-guesser.png diff --git a/tde-i18n-es/docs/tdemultimedia/juk/normal-playlist.png b/tde-i18n-es/docs/tdemultimedia/juk/normal-playlist.png Binary files differnew file mode 100644 index 00000000000..e134f3d84f1 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/normal-playlist.png diff --git a/tde-i18n-es/docs/tdemultimedia/juk/search-playlist.png b/tde-i18n-es/docs/tdemultimedia/juk/search-playlist.png Binary files differnew file mode 100644 index 00000000000..20f007b57b8 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/search-playlist.png diff --git a/tde-i18n-es/docs/tdemultimedia/juk/toolbar.png b/tde-i18n-es/docs/tdemultimedia/juk/toolbar.png Binary files differnew file mode 100644 index 00000000000..f4a978fcac9 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/juk/toolbar.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaboodle/Makefile.am b/tde-i18n-es/docs/tdemultimedia/kaboodle/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaboodle/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/kaboodle/Makefile.in b/tde-i18n-es/docs/tdemultimedia/kaboodle/Makefile.in new file mode 100644 index 00000000000..0b282633a17 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaboodle/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia/kaboodle +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kaboodle/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/kaboodle/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kaboodle/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kaboodle/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kaboodle/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=index.docbook index.cache.bz2 Makefile.in Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) index.docbook + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle + @for base in index.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle/$$base ;\ + done + +uninstall-nls: + for base in index.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaboodle/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in index.docbook ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kaboodle/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kaboodle/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kaboodle/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/kaboodle/index.cache.bz2 b/tde-i18n-es/docs/tdemultimedia/kaboodle/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..421f65bd4d0 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaboodle/index.cache.bz2 diff --git a/tde-i18n-es/docs/tdemultimedia/kaboodle/index.docbook b/tde-i18n-es/docs/tdemultimedia/kaboodle/index.docbook new file mode 100644 index 00000000000..be0b2003fde --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaboodle/index.docbook @@ -0,0 +1,110 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "<application +>kaboodle</application +>"> + <!ENTITY package "tdemultimedia"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % Spanish "INCLUDE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>El manual de &kappname;</title> + +<authorgroup> +<author +><firstname +></firstname +> <othername +></othername +> <surname +></surname +> <affiliation +> <address +><email +></email +></address> +</affiliation> +</author> +<othercredit role="translator" +> <firstname +>Santiago</firstname +> <surname +>Fernández Sancho</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +></othercredit +> +</authorgroup> + +<legalnotice +>&FDLNotice;</legalnotice> + +<!-- Date and version information of the documentation +Don't forget to include this last date and this last revision number, we +need them for translation coordination ! +Please respect the format of the date (YYYY-MM-DD) and of the version +(Major.minor.lesser), it could be used by automation scripts --> + +<date +>2000-09-02</date> +<releaseinfo +>0.00.00</releaseinfo> + +<!-- Abstract about this handbook --> + +<abstract> +<para +>&kaboodle; es un reproductor de archivos multimedia de &kde;. </para> +</abstract> + + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>Kapp</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction" +> <title +>Introducción</title +> <para +>Lo sentimos, pero la documentación para &kappname; no estaba terminada cuando &kde; se instaló en este ordenador.</para +> <para +>Si necesita ayuda, vaya al <ulink url="http://www.kde.org" +>sitio web de &kde;</ulink +> para obtener actualizaciones, o envíe sus preguntas a la <ulink url="mailto:[email protected]" +>lista de correo de usuarios de &kde;</ulink +>.</para +> <para +><emphasis +>El equipo de &kde;</emphasis +></para +> &underFDL; </chapter> + +&documentation.index; +</book> + +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: + +// vim:ts=2:sw=2:tw=78:noet +--> diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/Makefile.am b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/Makefile.in b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/Makefile.in new file mode 100644 index 00000000000..94d5c97f479 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia/kaudiocreator +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kaudiocreator/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/kaudiocreator/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kaudiocreator/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kaudiocreator/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kaudiocreator/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=cddbconfigurationlookup.png cdinserted.png cddbconfigurationsubmit.png kaudiocreatormainwindow800.png index.docbook encodernotfound.png encoderconfiguration.png index.cache.bz2 readytorip.png rippingandencoding.png jobcontrol.png confirmartistcarryover.png cdconfiguration.png setalbumcategory.png generalconfiguration.png ripperconfiguration.png Makefile.in rippingandencoding2.png entersong1.png startalbumeditor.png jobshavestarted.png Makefile.am lameconfiguration.png + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) cddbconfigurationlookup.png startalbumeditor.png lameconfiguration.png encoderconfiguration.png rippingandencoding.png cddbconfigurationsubmit.png index.docbook jobcontrol.png encodernotfound.png rippingandencoding2.png jobshavestarted.png cdinserted.png ripperconfiguration.png cdconfiguration.png confirmartistcarryover.png generalconfiguration.png setalbumcategory.png readytorip.png kaudiocreatormainwindow800.png entersong1.png + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator + @for base in cddbconfigurationlookup.png startalbumeditor.png lameconfiguration.png encoderconfiguration.png rippingandencoding.png cddbconfigurationsubmit.png index.docbook jobcontrol.png encodernotfound.png rippingandencoding2.png jobshavestarted.png cdinserted.png ripperconfiguration.png cdconfiguration.png confirmartistcarryover.png generalconfiguration.png setalbumcategory.png readytorip.png kaudiocreatormainwindow800.png entersong1.png ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator/$$base ;\ + done + +uninstall-nls: + for base in cddbconfigurationlookup.png startalbumeditor.png lameconfiguration.png encoderconfiguration.png rippingandencoding.png cddbconfigurationsubmit.png index.docbook jobcontrol.png encodernotfound.png rippingandencoding2.png jobshavestarted.png cdinserted.png ripperconfiguration.png cdconfiguration.png confirmartistcarryover.png generalconfiguration.png setalbumcategory.png readytorip.png kaudiocreatormainwindow800.png entersong1.png ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kaudiocreator/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in cddbconfigurationlookup.png startalbumeditor.png lameconfiguration.png encoderconfiguration.png rippingandencoding.png cddbconfigurationsubmit.png index.docbook jobcontrol.png encodernotfound.png rippingandencoding2.png jobshavestarted.png cdinserted.png ripperconfiguration.png cdconfiguration.png confirmartistcarryover.png generalconfiguration.png setalbumcategory.png readytorip.png kaudiocreatormainwindow800.png entersong1.png ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kaudiocreator/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kaudiocreator/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kaudiocreator/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cdconfiguration.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cdconfiguration.png Binary files differnew file mode 100644 index 00000000000..e21edefa790 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cdconfiguration.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cddbconfigurationlookup.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cddbconfigurationlookup.png Binary files differnew file mode 100644 index 00000000000..0dcff755eeb --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cddbconfigurationlookup.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cddbconfigurationsubmit.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cddbconfigurationsubmit.png Binary files differnew file mode 100644 index 00000000000..a71746081a7 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cddbconfigurationsubmit.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cdinserted.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cdinserted.png Binary files differnew file mode 100644 index 00000000000..3f9984d0f10 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/cdinserted.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/confirmartistcarryover.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/confirmartistcarryover.png Binary files differnew file mode 100644 index 00000000000..769f1f45ee0 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/confirmartistcarryover.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/encoderconfiguration.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/encoderconfiguration.png Binary files differnew file mode 100644 index 00000000000..1117c64dfff --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/encoderconfiguration.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/encodernotfound.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/encodernotfound.png Binary files differnew file mode 100644 index 00000000000..598b6ac4ade --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/encodernotfound.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/entersong1.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/entersong1.png Binary files differnew file mode 100644 index 00000000000..af537c87cae --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/entersong1.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/generalconfiguration.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/generalconfiguration.png Binary files differnew file mode 100644 index 00000000000..2c8fe5b2540 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/generalconfiguration.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/index.cache.bz2 b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..7d7c1d4e955 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/index.cache.bz2 diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/index.docbook b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/index.docbook new file mode 100644 index 00000000000..146534ae902 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/index.docbook @@ -0,0 +1,1804 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kaudiocreator "<application +>kaudiocreator 1.12</application +>"> + <!ENTITY kappname "&kaudiocreator;" +><!-- Do *not* replace kappname--> + <!ENTITY package "tdemultimedia" +><!-- tdebase, tdeadmin, etc --> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % Spanish "INCLUDE" +><!-- change language only here --> + + + <!-- Do not define any other entities; instead, use the entities + from kde-genent.entities and $LANG/user.entities. --> +]> +<!-- kdoctemplate v0.8 October 1 1999 + Minor update to "Credits and Licenses" section on August 24, 2000 + Removed "Revision history" section on 22 January 2001 + Changed to Installation/Help menu entities 18 October 2001 + Other minor cleanup and changes 18 October 2001 --> + + +<!-- +This template was designed by: David Rugge [email protected] +with lots of help from: Eric Bischoff [email protected] +and Frederik Fouvry [email protected] +of the KDE DocBook team. + +You may freely use this template for writing any sort of KDE documentation. +If you have any changes or improvements, please let us know. + +Remember: +- in XML, the case of the <tags +> and attributes is relevant ; +- also, quote all attributes. + +Please don't forget to remove all these comments in your final documentation, +thanks ;-). +--> + +<!-- ................................................................ --> + +<!-- The language must NOT be changed here. --> + +<book lang="&language;"> + +<!-- This header contains all of the meta-information for the document such +as Authors, publish date, the abstract, and Keywords --> + +<bookinfo> +<title +>El manual de &kaudiocreator;</title> + +<authorgroup> +<author +><firstname +></firstname +> <othername +></othername +> <surname +>alan</surname +> <affiliation +> <address +><email +>[email protected]</email +>no mail, sorry.</address> +</affiliation> +</author> +</authorgroup> + +<othercredit role="translator" +><firstname +>Santiago</firstname +> <surname +>Fernández Sancho</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation +><contrib +>Traductor</contrib +></othercredit +> <othercredit role="translator" +> <firstname +>Javier</firstname +> <surname +>Fdez. Retenaga</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +> </othercredit +> + +<copyright> +<year +>1999</year> +<year +>2005</year> +<holder +>alan</holder> +</copyright> +<!-- Translators: put here the copyright notice of the translation --> +<!-- Put here the FDL notice. Read the explanation in fdl-notice.docbook + and in the FDL itself on how to use it. --> +<legalnotice +>&FDLNotice;</legalnotice> + +<!-- Date and version information of the documentation +Don't forget to include this last date and this last revision number, we +need them for translation coordination ! +Please respect the format of the date (YYYY-MM-DD) and of the version +(V.MM.LL), it could be used by automation scripts. +Do NOT change these in the translation. --> + +<date +>2005-02-20</date> +<releaseinfo +>1.12</releaseinfo> + +<!-- Abstract about this handbook --> + +<abstract> +<para +>&kaudiocreator; es un extractor de audio de CDs para KDE. </para> +</abstract> + +<!-- This is a set of Keywords for indexing by search engines. +Please at least include KDE, the KDE package it is in, the name + of your application, and a few relevant keywords. --> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>kaudiocreator</keyword> +<keyword +>CD</keyword> +<keyword +>extractor</keyword> +</keywordset> + +</bookinfo> + +<!-- The contents of the documentation begin here. Label +each chapter so with the id attribute. This is necessary for two reasons: it +allows you to easily reference the chapter from other chapters of your +document, and if there is no ID, the name of the generated HTML files will vary +from time to time making it hard to manage for maintainers and for the CVS +system. Any chapter labelled (OPTIONAL) may be left out at the author's +discretion. Other chapters should not be left out in order to maintain a +consistent documentation style across all KDE apps. --> + +<chapter id="introduction"> +<title +>Introducción</title> + +<!-- The introduction chapter contains a brief introduction for the +application that explains what it does and where to report +problems. Basically a long version of the abstract. Don't include a +revision history. (see installation appendix comment) --> + +<para +>&kaudiocreator; es un extractor de audio de CDs para KDE. Le permitirá convertir sus CDs de audio en archivos mp3, ogg u otros formatos, dependiendo de los codificadores que tenga instalados en su sistema.</para> + +<para +>&kaudiocreator; es una interfaz gráfica para cdparanoia (que extrae los datos del CD y los pasa al disco duro convertidos en archivos wav) y los diversos codificadores que comprimen esos archivos wav. En la actualidad está configurado para lame (mp3), oggenc (ogg) y flac (compresión sin pérdida), si bien el programa le permite añadir más codificadores. (Advierta que para que &kaudiocreator; pueda utilizar los codificadores estos deben estar ya instalados en su sistema.)</para> + +<para +>En general, extraer el audio de un CD es un proceso de dos pasos: <itemizedlist> + <listitem +><para +>primero, las pistas/canciones del CD se copian en la computadora como archivos wav (sin pérdida, no comprimidos), y a continuación,</para +></listitem> + <listitem +><para +>en un segundo paso, estos archivos wav (normalmente uno por canción) son comprimidos en formato mp3, ogg u otros, como el flac.</para +></listitem> + </itemizedlist> +</para> + +<para +>Para el primer paso, el copiado del CD, &kaudiocreator; utiliza cdparanoia. Casi todas las distribuciones cuentan con un paquete precompilado, de mo do que si no lo ha hecho ya, instálelo.</para> + +<para +>Para el 2º paso es preciso que lame (para mp3), oggvorbis (para ogg) u otros codificadores estén ya instalados. Normalmente todos estos programas se encuentran en cualquier distribución de Linux, por lo que lo más probable es que usted no tenga que compilar nada. Lo único que tendrá que hacer es instalar cualquiera de esos paquetes. Basta con que instale el paquete correspondiente al codificador que quiere utilizar. Si, por ejemplo, no necesita flac, no hace falta que lo instale.</para> + +<para +>¿Qué codificador/formato utilizar? El capítulo <link linkend="what_encoder" +>Qué codificador utilizar</link +> le proporciona una pequeña introducción en torno a codificadores, calidad de sonido y factores de compresión.</para> + +<para +>Unas palabras acerca del copiado de CDs protegidos. Como ya se ha dicho, &kaudiocreator; utiliza cdparanoia para copiar los datos de audio del CD. Este programa no ha sido diseñado para saltarse ninguna protección anti-copia. De modo que, a menos que su reproductor de CD/DVD lo haga, no podrá copiar CDs de audio protegidos. En cualquier caso, &kaudiocreator; no puede por sí mismo manipular ningún mecanismo de protección. ¡No compre CDs con protección anti-copia y el mercado se encargará de acabar con esa estupidez!</para> + +<para +>Al abrir el programa por primera vez, es probable que no haya sabido qué hacer con esa pantalla medio vacía (sobre todo si cuando inició el programa aún no había introducido un CD de audio en el lector ) y su inusualmente breve menú.</para> + +<para +>No se preocupe, este manual le mostrará cómo copiar un CD con este programa. Además de la habitual explicación de las entradas del menú, hay una sección especial con un <link linkend="Example" +>ejemplo paso a paso</link +>. En primer lugar, aprenderá a configurar las preferencias generales. Esto incluye su lector de CDs (identificación del dispositivo), el directorio para los archivos temporales, el directorio de destino (dentro del cual, para cada CD), el codificador a utilizar (como lame para los mp3, o oggvorbis para los ogg) y, entre otras cosas, si quiere utilizar freedb para tomar de internet (o de paranoia, no cdparanoia :-) ) los datos correspondientes a su CD o si prefiere introducirlos manualmente.</para> +<para +>Una vez configurado el programa (sólo tendrá que hacerlo una vez, aunque podrá hacer modificarla siempre que quiera hasta hallar la configuración que más le convenga), aprenderá a realizar la tarea cotidiana de copiar un CD en el disco duro. Será entonces (eso esperamos) cuando entenderá y le tomará gusto a la sobria interfaz con la que se ha encontrado al iniciar el programa por primera vez.</para> + +<para +>Una última observación. &kaudiocreator; es un programa muy flexible que puede operar con muchos codificadores. Por consiguiente, este manual (actualmente) no se ocupa de todas las opciones y preferencias posibles. Tómelo como un punto de partida para explorar el programa por sí mismo, si cree necesitar más de lo tratado aquí. Normalmente se puede obtener más información acerca de los programas/codificadores utilizados por &kaudiocreator; abriendo la consola y escribiendo «man nombre-de-la-aplicación», «nombre-de-la-aplicación -help», «nombre-de-la-aplicación --help» o «nombre-de-la-aplicación -h».</para> + +<para +>Y ahora, ¡diviértase!</para> +</chapter> + +<chapter id="using-kaudiocreator"> +<title +>Utilización de &kaudiocreator;</title> + +<!-- This chapter should tell the user how to use your app. You should use as +many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document +your application. --> + +<para +>¿De qué estamos hablando? Bien, está leyendo esto, de modo que lo más probable es que ya haya iniciado el programa. Si es así se habrá encontrado con algo parecido a esto: </para> +<para> + +<!-- Note that all graphics should be in .png format. Use no gifs because of +patent issues. --> + +<screenshot> +<screeninfo +>Esta es una instantánea de &kaudiocreator;</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="kaudiocreatormainwindow800.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Instantánea de la ventana principal de &kaudiocreator;</phrase> + </textobject> + </mediaobject> +</screenshot> +</para> +<para +>La ventana principal tras iniciar el programa. </para> + +<sect1 id="kaudiocreator-features"> +<title +>Una breve lista de las funcionalidades de &kaudiocreator;</title> + +<itemizedlist> + <listitem +><para +>puede codificar en muchos formatos, dependiendo de los programas/codificadores que tenga instalados (mp3, ogg, flac, etc.)</para +></listitem> + <listitem +><para +>puede recoger información acerca del CD de freedb, por medio de internet, o puede trabajar sin conexión a la línea, introduciendo todos los datos manualmente</para +></listitem> + <listitem +><para +>puede añadir etiquetas a los archivos creados, dependiendo de en qué formato codifique</para +></listitem> + <listitem +><para +>pone nombre a los directorios y a las canciones, en función de combinaciones (que usted puede modificar) de la información del CD</para +></listitem> +</itemizedlist> + +</sect1> +</chapter> + +<chapter id="commands"> +<title +>Referencia de órdenes</title> + +<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the +application windows and their menubar and toolbar commands for easy reference. +Also include any keys that have a special function but have no equivalent in the +menus or toolbars. This may not be necessary for small apps or apps with no tool +or menu bars. --> +<para +>Esta es solo una breve lista de las órdenes de la ventana principal. Vea el <link linkend="Example" +>ejemplo completo paso a paso</link +> para conocer más detalles acerca de cómo utilizar este programa y ver capturas de pantalla con descripciones de las pestañas de configuración del mismo.</para> + +<sect1 id="kaudiocreator-mainwindow"> +<title +>La ventana principal de &kaudiocreator;</title> + +<sect2> +<title +>El menú Archivo</title> +<para> +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>w</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +> <guimenuitem +>Expulsar CD</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre la bandeja del dispositivo y expulsa el CD.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>C</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +> <guimenuitem +>Buscar en CDDB</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Comienza la búsqueda de los datos del CD en el CDDB, de acuerdo con las preferencias que haya indicado en «Preferencias - Configurar KAudioCreator... - Buscar». (Puede ser local o en el servidor, en cuyo caso tendrá primero que conectarse a internet.)</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>E</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +> <guimenuitem +>Editar álbum...</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre la ventana de edición de álbumes.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>A</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +> <guimenuitem +>Seleccionar todas las pistas</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Selecciona las pistas que se van a procesar (copiar y, si así se indica, codificar).</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>A</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +> <guimenuitem +>Deseleccionar todas las pistas</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Deselecciona todas las pistas que iban a procesarse.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>S</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +> <guimenuitem +>Extraer pistas seleccionadas</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Comienza la extracción y, si hay codificador seleccionado en «Preferencias - Configurar KAudioCreator... - Codificador», la codificación.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>S</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +> <guimenuitem +>Extraer pistas seleccionadas (con)</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre un sub-menú con una lista de los codificadores disponibles, de modo que pueda utilizar un codificador distinto al marcado por defecto. Advierta que el codificador ha de haber sido configurado en «Preferencias - Configurar KAudioCreator... - Codificador».</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>C</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +> <guimenuitem +>Eliminar trabajos completados</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Elimina de la ventana «Trabajos» los trabajos completados.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>F</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +> <guimenuitem +>Codificar archivo...</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre una ventana que le permite buscar y seleccionar un archivo ya extraído, para codificarlo ahora.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>Q</keycap +></keycombo +> </shortcut +> <guimenu +>Archivo</guimenu +> <guimenuitem +>Salir</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Cierra &kaudiocreator;.</action +></para +></listitem> +</varlistentry> +</variablelist> +</para> + +</sect2> + +<sect2> +<title +>El menú Preferencias</title> +<para> +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +></keycap +></keycombo +> </shortcut +> <guimenu +>Preferencias</guimenu +> <guimenuitem +>Ocultar/Mostrar barra de herramientas</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Muestra u oculta la barra de herramientas.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>a</keycap +></keycombo +> </shortcut +> <guimenu +>Preferencias</guimenu +> <guimenuitem +>Mostrar/Ocultar barra de estado</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Muestra u oculta la barra de estado.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>h</keycap +></keycombo +> </shortcut +> <guimenu +>Preferencias</guimenu +> <guimenuitem +>Configurar accesos rápidos...</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre la ventana de configuración para determinar los accesos rápidos (combinaciones de teclas) correspondientes a las órdenes del menú.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>b</keycap +></keycombo +> </shortcut +> <guimenu +>Preferencias</guimenu +> <guimenuitem +>Configurar barras de herramientas...</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre la ventana de configuración para configurar la barra de herramientas.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>N</keycap +></keycombo +> </shortcut +> <guimenu +>Preferencias</guimenu +> <guimenuitem +>Configurar notificaciones...</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre la ventana de configuración para determinar el tipo de notificaciones (mensajes, sonidos) correspondientes a los eventos del programa (como la finalización de la extracción de un CD).</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>C</keycap +></keycombo +> </shortcut +> <guimenu +>Preferencias</guimenu +> <guimenuitem +>Configurar KAudioCreator...</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre el cuadro principal de diálogo para la configuración de &kaudiocreator;, que consta de varias pestañas (como Codificador, para la configuración del codificador). ¡Tiene que entrar aquí para poder usar con éxito el programa!</action +></para +></listitem> +</varlistentry> +</variablelist> +</para> + +</sect2> + +<sect2> +<title +>El menú <guimenu +>Ayuda</guimenu +></title> +&help.menu.documentation; </sect2> + +</sect1> +</chapter> + +<chapter id="what_encoder"> +<title +>Qué codificador/ formato de archivo utilizar: calidad de audio, codificadores y tasas de compresión</title> + +<para +>¿Qué codificador utilizar?</para> + +<para +>Si no quiere perder nada de la información del audio, necesita un formato de audio sin pérdida. Además de flac hay otros, como shorten o monkey, que pueden estar disponibles para su distribución. El inconveniente es que las tasas de compresión serán bajas y que apenas existen dispositivos comerciales capaces de reproducir esos archivos.</para> + +<para +>Entre los formatos de audio que pierden información debido a la compresión de datos realizada en función de su modelo psicoacústico, mp3 y ogg son los más comunes. En la actualidad, ogg puede tener una pequeña ventaja en calidad de audio sobre mp3 cuando se trata de tasas de bits bajas (hasta 128 kbps), pero por encima de esa tasa las diferencias son cada vez menores: ambos codificadores producen audio de muy buena calidad.</para> + +<para +>Esquemáticamente:</para> + +<para +>flac <itemizedlist> + <listitem +><para +>+ compresión sin pérdida</para +></listitem> + <listitem +><para +>+ libre</para +></listitem> + <listitem +><para +>+ muy buena calidad de audio (sin pérdida)</para +></listitem> + <listitem +><para +>- tasa de compresión baja (probablemente sólo alrededor de 2.x)</para +></listitem> + <listitem +><para +>- no existen aparatos reproductores para este formato (hasta donde sepamos)</para +></listitem> + </itemizedlist> +</para> + +<para +>ogg <itemizedlist> + <listitem +><para +>- pérdida de información de audio (la cantidad dependerá de la tasa final de bits)</para +></listitem> + <listitem +><para +>+ libre</para +></listitem> + <listitem +><para +>+ buena o muy buena calidad de audio (con altas tasas de bits)</para +></listitem> + <listitem +><para +>+ alta tasa de compresión (de lo cual dependerá la calidad de audio final)</para +></listitem> + <listitem +><para +>- pocos aparatos de reproducción para este formato</para +></listitem> + </itemizedlist> +</para> + +<para +>mp3 <itemizedlist> + <listitem +><para +>- pérdida de información de audio (la cantidad dependerá de la tasa final de bits)</para +></listitem> + <listitem +><para +>o «no tan» libre; lame viene incluido en la mayoría de las distribuciones, pero existen problemas con la licencia</para +></listitem> + <listitem +><para +>+ buena o muy buena calidad de audio (con altas tasas de bits), si bien algo menor que ogg con tasas de bits bajas</para +></listitem> + <listitem +><para +>+ alta tasa de compresión (de lo cual dependerá la calidad de audio final)</para +></listitem> + <listitem +><para +>+ muchos reproductores reconocen este formato</para +></listitem> + </itemizedlist> +</para> + +<para +>Como ya se ha dicho antes, mp3 y ogg son formatos de audio con pérdida final de información de sonido. Una vez hecha la conversión a mp3/ogg no podrá invertir el proceso y recuperar el original. Partiendo de estos formatos podrá crear archivos wav e incluso grabarlos de nuevo en un CD para reproducirlos en un reproductor de CDs (la mayoría de los reproductores de DVD pueden reproducir los formatos wav y mp3, no así el ogg), pero los archivos wav generados a partir de un mp3 u ogg no serán tan buenos como el original. En realidad, dependiendo de su equipo HiFi y de la tasa de compresión que eligió al crear los mp3/ogg, es posible que ni siquiera note la diferencia. De todos modos, si no quiere perder nada de información de sonido pero quiere comprimir sus archivos wav, debería echar un vistazo a flac, shorten or monkey. No obstante, estos codificadores no comprimirán más allá de un factor de 2.x .</para> + +<para +>Si no es muy quisquilloso probablemente su decisión estará entre ogg y mp3. Elija</para> + +<para +>ogg - si quiere escuchar la música sólo en su ordenador o en un servidor de música que funcione por medio de un ordenador y/o dispone ya de uno de los pocos reproductores de ogg.</para> + +<para +>mp3 - si quiere escuchar música también en otros aparatos, como reproductores estándar de DVD, reproductores portátiles (memorias USB, tarjetas de memoria flash, HD) o equipos especiales de estéreo para coches. Hoy en día (en 2005), la mayoría de estos aparatos sólo reproducen el formato mp3.</para> + +<para +>En lo que a la calidad se refiere, ambos formatos de audio deberían servir perfectamente, dependiendo de la tasa de compresión que elija. Para mp3 (y problemente también para ogg) una tasa de bits de 128 kbps da lugar a una tasa de compresión de 11 en comparación con el wav original almacenado en el CD. Eso podría valer para los viajes, pero no es suficiente para un buen equipo HIFI doméstico. 192 kbps es una buena solución incluso para el equipo HIFI de su sala de estar. Esto le daría una tasa de compresión de 7,3 .</para> + +<para +>Hace unos años se realizó una prueba ciega con un sistema de alta fidelidad que usted nunca podría permitirse y los expertos no fueron capaces de diferenciar un mp3 a 256 kbps de un CD original :-) Esto reducirá el espacio de almacenamiento del wav original en un factor de 5,5 lo que está bastante bien. En los sistemas más modernos podrá utilizar una tasa de bits variable. Aquí el codificador varía la tasa de bits dependiendo de la complejidad de la música, de acuerdo con su modelo psicoacústico (¡toma ya! :-) ). La configuración de lame «--preset extreme» genera un archivo con un VBR (tasa de bits variable; en contraposición a CBR, tasa de bits constante) de 224 a 256 kbps, dependiendo de la complejidad de la música. Esto comprimirá el original en un factor de 6,3 y podráreproducirlo prácticamente con cualquier reproductor del mercado.</para> + +<para +>A menos que tenga un equipo enormemente caro (estamos hablando de miles de euros o dólares) y un oído extremadamente fino, con la tasa CBR máxima posible (320 kbps), lo más probable es que no note ninguna diferencia, créame. De este modo la tasa de compresión será de 4,4. A propósito, la opción «--preset extreme» utilizará de hecho 320 kbps para las partes más complejas, comprimiendo mucho más las partes menos complejas hasta conseguir una tasa de media de bits que irá de 224 a 256 kbps.</para> + +<para +>Una breve lista de los parámetros de calidad de audio y las tasa de compresión resultantes para lame (mp3) (consulte lame --help para más detalles): <itemizedlist> + <listitem +><para +>«--preset extreme» = de 224 a 256 kbps VBR, tasa de compresión hasta 6.3 . Utiliza hasta 320 kbps para las partes complejas y menos para las partes menos complejas de la canción. Suficientemente bueno para equipos HIFI domésticos de alta calidad. ¡Primera opción!</para +></listitem> + <listitem +><para +>«--preset extreme -b 256 = 256 kbps CBR, tasa de compresión alrededor de 5.5 . Utiliza siempre 256 kbps, tanto para las partes más complejas de la canción como para las más sencillas. En algunos reproductores antiguos sólo sirve el CBR (tasa de bits constante). Es una opción lo bastante buena para equipos domésticos de alta calidad.</para +></listitem> + <listitem +><para +>«-h» = 128 kbps CBR, tasa de compresión en torno a 11 . 128 kbps para todas las partes de la canción. Es suficiente para música infantil, reproductores portátiles y equipos de automóviles. No obstante, no es lo bastante bueno para equipos domésticos de mejor calidad.</para +></listitem> + </itemizedlist> +</para> + +</chapter> + + +<chapter id="parameters"> +<title +>Parámetros de información del CD</title> + +<para +>La información del CD introducida por usted u obtenida automáticamente por el programa, de freedb vía internet, queda disponible en el programa en forma de una lista de parámetros que pueden ser analizados y utilizados por &kaudiocreator; y los programas codificadores a fin de crear nombres de directorios y archivos y/o generar etiquetas en los archivos de las canciones.</para> + +<para +>Cuando la utilice con codificadores, a menudo tendrá que emplear una combinación de las opciones de esos programas con los parámetros de &kaudiocreator;. Los manuales o la ayuda de los codificadores le explicarán las opciones de los mismos.</para> + +<para +>Por ejemplo, para añadir el título del CD a una etiqueta cuando se codifican mp3 con lame, tiene que añadir la opción -tt de lame seguida del parámetro título de &kaudiocreator;. El resultado tiene la forma: «... -tt {title} ...» .</para> + +<para +>Este es un resumen de los parámetros disponibles en &kaudiocreator; (= nombre de la casilla):</para> +<itemizedlist> + <listitem +><para +>%{albumartist} - artista del álbum (Artista)</para +></listitem> + <listitem +><para +>%{albumtitle} - título del álbum (Álbum)</para +></listitem> + <listitem +><para +>%{artist} - artista de la canción (Artista de la pista)</para +></listitem> + <listitem +><para +>%{albumcomment} - comentario acerca del álbum (Comentario)</para +></listitem> + <listitem +><para +>%{comment} - comentario acerca de la canción (Comentario de la pista)</para +></listitem> + <listitem +><para +>%{extension} - longitud del archivo (Longitud)</para +></listitem> + <listitem +><para +>%{genre} - género musical (Género)</para +></listitem> + <listitem +><para +>%{title} - título de la canción de la pista actual (Título de la pista)</para +></listitem> + <listitem +><para +>%{number} - número de la pista actual (Número de pista)</para +></listitem> + <listitem +><para +>%{~} - atajo estándar en linux para el directorio personal del usuario (carpeta Home)</para +></listitem> +</itemizedlist> + +</chapter> + + +<chapter id="freedb"> +<title +>freedb - ¿Qué es eso?</title> + +<para +>Usted no es el único que desea eschuchar su música sin echar mano de su CD de audio. Personas de todo el mundo copian sus CDs y los convierten en otro formato. A todos les sucede lo mismo: lo que lleva más tiempo en este proceso es introducir los datos del CD. Así, algunos avispados tuvieron la idea de que sería mucho más fácil si por cada CD sólo una persona lo hiciera y el resto sólo tuviera que retomar los datos del CD, ahorrándose de este modo el trabajo de escribirlos.</para> + +<para +>En eso consiste freedb; es una base de datos libre donde quienes copian CD pueden introducir/subir los datos de un CD, de tal modo que todo el mundo pueda bajarse esa información en vez de tener que teclearla por sí mismos. Advierta que nos estamos refiriendo sólo al texto: título del CD, artista, títulos de las canciones, etc, no al propio archivo de audio.</para> + +<para +>¿Es legal y seguro usarlo?</para> + +<para +>Sí, debe de ser legal, pero no soy abogado. De todos modos, nadie puede impedirle publicar una información que está disponible públicamente en el CD. Y, más aún, cuando la información del CD es algo poco menos que insustancial, de manera que el artista o las compañías discográficas no pueden sentirse perjudicados. En cualquier caso, usted puede obtener esa información pasándose por una tienda de discos, físicamente o en internet.</para> + +<para +>¿Es seguro? Bien, para obtener la infomación del CD no es necesario que usted revele ningún dato personal. Hay réplicas de freedb en muchos países, y usted puede incluso bajarse la base de datos para operar con ella sin necesidad de conectarse a la red. (Se lo advierto, ahora (a comienzos de 2005) es ya un archivo tar.bz2 ¡de 370 MB!). Para recoger datos se le pide que introduzca una dirección de correo electrónico, pero puede hacerlo con una falsa. En realidad, le recomiendo que lo haga así, para evitar que su dirección accidentalmente se haga pública y acabe recibiendo un montón de correo basura. El promotor del servicio asegura que no rastrearán o almacenarán sus datos (¿por qué los piden entonces?) y, además, muchas réplicas están en manos de instituciones de confianza.</para> + +<para +>En &kaudiocreator; tiene que marcar usted mismo una casilla para habilitar el smtp (envío de direcciones) y puede introducir una dirección diferente (falsa) de la que tiene configurada en su ordenador. Tal como está diseñada la configuración, parece que al obtener datos del servidor no se usa la dirección de correo (pero yo no soy programador, no he verificado el código del programa.)</para> + +<para +>De todos modos, para poder introducir datos en el servidor (un CD nuevo, que aún no está en la base de datos, o la corrección de una entrada existente) los responsables de freedb le piden que lo haga con una dirección de correo válida. Es un gran servicio, de modo que respete esta petición en el caso de que quiera hacer alguna contribución. No tiene nada de qué preocuparse aparte de que su dirección de correo pueda caer en las manos equivocadas y reciba (más) correo basura. (Puede utilizar una dirección que no sea «la mejor».) Si tiene un CD que no está aún en la base de datos, lea por favor cuidadosamente las PF y los «How-To» correspondientes en freedb.org.</para> + +<para +>Hay réplicas de la base de datos principal en muchos países. Cuando configure &kaudiocreator; para utilizar freedb, use por favor la réplica más próxima. Esto ahorra ancho de banda en la red y equilibra la carga entre los servidores.</para> + +<para +>Si va a obtener información del CD cada vez que copie uno, quiere bajarse la base de datos completa (suele crearse una vez al mes) o actualizaciones de la misma, visite freebd.org para obtener una lista actualizada de réplicas del servidor.</para> + +<para +>¿Cómo funciona?</para> + +<para +>Cuando se introduce un CD en la bandeja, a partir de los datos del mismo se genera automáticamente un ID único (o no tanto). Podría representar el número de pistas y su duración y/o alguna otra cosa. Visite freedb.org para obtener más información. Curioso, pero por desgracia el ID creado no parece ser único para cada CD. Así, en ocasiones un CD tiene que ser clasificado en una categoría incorrecta, fuera de las 11 definidas por freedb, porque en la base de datos ya hay un CD con la misma clave para la categoría correcta. Por razones de compatibilidad no quieren cambiar la generación de claves. De todos modos, esto debería ser algo excepcional. :-) Compruebe las categorías en freedb.org antes de enviar los datos de un CD. Por ejemplo, la categoría rock engloba también los CDs de pop y rap, ya que no existe categoría propia para estos estilos.</para> + +</chapter> + + +<chapter id="faq"> +<title +>Preguntas y respuestas</title> +&reporting.bugs; &updating.documentation; <qandaset id="faqlist"> +<qandaentry> +<question> +<para +>¿Qué programa se emplea para extraer las canciones del CD y copiarlas en la computadora como archivos wav?</para> +</question> +<answer> +<para +>Yo nunca he examinado el código fuente, pero dicen que el programa que se usa para eso es cdparanoia. Siempre ha sido la mejor opción para copiar CDs de audio. Advierta que, si no lo está ya, debe instalar el paquete de cdparanoia correspondiente a su distribución.</para> +<para +>Entretanto, cdda2wav ha mejorado mucho y puede haber aspectos, como en el caso de los CDs que contienen audio y datos, en que haya superado a cdparanoia. Para la simple copia de los CDs, cdda2wav utiliza actualmente la misma biblioteca que cdparanoia. En cualquier caso, esta información no es muy útil para usted, ya que no puede cambiar el programa de copia en &kaudiocreator;. En el caso de que tenga problemas para copiar un CD y quiera probar con cdda2wav, tendrá que utilizar otro programa, como grip, que utiliza gtk y le permite definir el programa de copia que desea emplear.</para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>¿Qué codificadores/formatos admite &kaudiocreator;? ¿Puedo crear archivos mp3 u ogg?</para> +</question> +<answer> +<para +>Puede escoger el codificador y, por tanto, el formato de archivo al que desee convertir los archivos wav. La primera vez que abra el programa, en la pestaña de configuración «Codificador» encontrará entradas predefinidas para lame (mp3), oggenc (ogg) y flac (un formato de audio de compresión sin pérdida). Ahí puede añadir otros codificadores.</para> +<para +>Advierta que para poder utilizar un codificador, antes debe haber instalado el paquete de su distribución correspondiente a ese codificador. (¡Esto es necesario incluso para los codificadores predefinidos!). Eche un vistazo al capítulo <link linkend="what_encoder" +>Qué codificador utilizar</link +> para obtener más información acerca de los codificadores.</para> +<para +>Tras instalar un codificador puede obtener más información acerca de sus opciones escribiendo en la consola algo así como «lame -help» o «lame --help», donde «lame» debe sustituirse por el nombre del codificador que ha instalado.</para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>Parece que esto no funciona.</para> +</question> +<answer> +<para +>Hay muchas razones posibles. Compruebe que el dispositivo de lectura de CD/DVD es el correcto, que tiene permisos de lectura y si están instalados cdparanoia y el codificador que ha elegido (lame para mp3, oggenc para ogg, flac, etc.). Pruebe a ejecutar estos programas desde la línea de órdenes de un terminal. Eso podría darle una idea de lo que va mal.</para> +<para +>Por casualidad, ¿no estará intentando copiar un CD con protección anti-copia? Mire la carátula del CD. Si es así no podrá copiarlo. Mala suerte, la próxima vez compre CDs sin protección anti-copia.</para> +<para +>Hay un capítulo con un <link linkend="Example" +>ejemplo completo paso a paso</link +>. Puede darle una idea de cómo proceder, aun cuando desee utilizar una configuración distinta.</para> +</answer> +</qandaentry> +</qandaset> +</chapter> + + +<chapter id="Example"> + +<title +>Ejemplo completo: desde la configuración básica hasta la primera extracción de audio de un CD</title> + +<para +>¿Ha leído el manual completo, ha entendido todo y no obstante no sabe qué hacer? Bueno, no hay problema, siga este ejemplo paso a paso y tendrá la información suficiente para ajustar únicamente esas partes que conseguirán que el programa haga exactamente lo que espera de él.</para> + +<para +>En este ejemplo iniciaremos el programa por primera vez, lo configuraremos y extraeremos el audio de nuestro primer CD. Utilizaremos lame «--preset extreme» para crear archivos mp3 con un VBR (tasa de bits variable) de 244 a 256 kbps de media y etiquetas ID3V1.</para> + +<para +>Necesitará tener instalados cdparanoia y lame en su sistema. Ambos programas deberían estar disponibles como paquetes precompilados para su distribución linux. Sin embargo, podría necesitar buscar en un motor de búsqueda el paquete adecuado de lame, y en algunas ocasiones puede no ser totalmente libre. En cualquier caso, no necesitará compilarlo desde el fuente, aunque por supuesto siempre puede hacerlo.</para> + +<para +>La forma en que organizaremos nuestra música en el disco duro es: <itemizedlist> + <listitem +><para +>Nombre del directorio principal para todos los CDs: /usr/share/cd</para +></listitem> + <listitem +><para +>En éste un subdirectorio para cada CD con el siguiente nombre: artista del CD - título del CD - año</para +></listitem> + <listitem +><para +>En el subdirectorio los nombres de las canciones: pista# - título de la pista</para +></listitem> + </itemizedlist> +</para> +<para +>En resumen: /usr/share/cd/artista del cd - título del cd - año/pista# - título de la pista</para> +<para +>Asegúrese de que el directorio «/usr/share/cd» existe y de que tiene permisos para escribir en él (p. ej., intente copiar algo en él con konqueror).</para> + +<para +>El ejemplo está dividido en 2 secciones: <itemizedlist> + <listitem +><para +>La primera se ocupa de la configuración básica de &kaudiocreator;, algo que sólo debería hacer una vez, y</para +></listitem> + <listitem +><para +>la segunda describe el proceso de extracción del audio de un CD, que tendrá que repetir para cada CD que copie.</para +></listitem> + </itemizedlist> +</para> + +<para +>Vamos allá...</para> + +<sect1 id="Basic-Setup"> + <title +>E 1 Configuración básica</title> + + <para +>Aquí establecemos el codificador a utilizar para comprimir la música (lame), y con elloel formato del archivo de audio (mp3), así como la calidad de audio resultante (--preset extreme = +> VBR 224 a 256 kbps). Determinamos dónde se situarán los archivos y qué estructura se utilizará para guardarlos. También indicaremos al programa que obtenga los datos del CD de freedb, vía internet, ya que somos un poco perezosos.</para> + + <para +>Siempre podrá cambiar cualquiera de estas configuraciones, aunque lo más probable es que, una vez haya encontrado la configuración adecuada, no necesite cambiarlas cada vez que extraiga audio de un CD .</para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.1 Paso 01: Determinar el ID del dispositivo de su lector/grabador de CD/DVD</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>En la ventana principal:</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="kaudiocreatormainwindow800.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Instantánea de la ventana principal de &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Definir el «Dispositivo» como «/dev/cdrom»</para> + <para +>El ID del dispositivo es analizado por el programa de extracción de audio para comprobar que puede leer los datos/canciones.</para> + <para +>Normalmente /dev/cdrom es un enlace simbólico al ID del dispositivo real de su unidad. Si no funciona o tiene más de una unidad de CD/DVD, puede indicar el ID exacto del dispositivo. Si puede acceder a su unidad con otros programas, eche un vistazo a /etc/fstab y pruebe con las entradas del dispositivo para las unidades de CD-ROM y/o DVD listadas ahí.</para> + <para +>¿Nada? ¿No ha habido suerte?</para> + <para +>Si la versión de su núcleo es la 2.6:</para> + <para +>Si tiene una unidad ATAPI (o IDE) con un núcleo 2.6, el ID del dispositivo estará en el rango de /dev/hda a /dev/hdd. El maestro en el canal 2 es un buen punto de partida: este podría ser /dev/hdc. Si sus discos duros son todos S-ATA, /dev/hda podría funcionar. Las unidades nativas SCSI comenzarán por /dev/sda, a menos que tenga unidades de disco duro S-ATA, que aparecerán en primer lugar en la lista, en cuyo caso, dependiendo del número de discos, la unidad de CD/DVD comenzará por /dev/sdb o /dev/sdc.</para> + <para +>Si la versión de su núcleo es la 2.4:</para> + <para +>Se accede a las unidades de CD/DVD a través de SCSI, por tanto comenzarán por /dev/sda.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.2 Paso 02: Pestaña de Configuración general</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Preferencias -> Configurar KAudioCreator... -> General</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="generalconfiguration.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de la pestaña Configuración general de &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>La pestaña «Configuración general». No hay mucho que hacer aquí. No obstante, puede indicar algún formato adicional. En nuestro ejemplo, introduzca/deje algo como lo que se muestra en la captura de pantalla. </para> + <para +>Marque «Preguntar si la información del álbum no es completa», para que cuando alguna información para la generación de etiquetas no esté disponible se le pregunte qué datos desea introducir.</para +></listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.3 Paso 03: Pestaña Configuración del CD</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Preferencias -> Configurar KAudioCreator... -> CD</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="cdconfiguration.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de la pestaña Configuración del CD de &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>La pestaña «Configuración del CD». Marque ambas entradas. Somos perezosos y queremos que los datos del CD se obtengan automáticamente a través de internet del servidor freedb.</para> + <para +>Tenga en cuenta que cuando extraiga el audio del CD necesitará estar conectado para poder acceder al servidor freedb.</para> + <para +>Es conveniente marcar la segunda casilla, ya que si encuentra una entrada para el CD, el audio se extraerá inmediatamente. Esto tiene un riesgo muy bajo, ya que si posteriormente no está contento con la entrada de la base de datos y los nombres de los directorios/archivos resultantes o con las entradas de las etiquetas, puede cambiarlas fácilmente. Los nombres de los directorios y de los archivos se pueden cambiar con Konqueror -> renombrar, y las etiquetas id3 con kid3, el etiquetador de KDE.</para> + <para +>Una nota independiente de este ejemplo: Si desea introducir todo manualmente, quite las marcas de las casilla y freedb no se utilizará. Puede utilizar freedb localmente en modo desconectado si descarga antes la base de datos. Sin embargo, esta tendrá un tamaño de más de 370 MB, de modo que piénselo dos veces antes de hacerlo. Para utilizar freedb en modo desconectado, necesitará marcar estas casillas, al menos la primera. El modo se configura en la siguiente pestaña.</para +></listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.4 Paso 04: Pestaña Configuración de búsqueda de CDDB</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Preferencias - +> Configurar KAudioCreator... -> CDDB -> pestaña Buscar</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="cddbconfigurationlookup.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de la pestaña de Configuración de búsqueda de CDDB de &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>CDDB es nuestro freedb. Ahí se indican las preferencias para la búsqueda de datos, para obtener información del CD desde el servidor freedb a través de internet. ¿Cómo sabe el sistema qué datos obtener? Lea <link linkend="freedb" +>la sección acerca de freedb</link +>. No tiene más que configurar todo tal y como se muestra en la captura de pantalla.</para> + <para +>Explicación corta:</para> + <para +>Modo: No hemos descargado la base de datos, de manera que trabajaremos en modo remoto, sólo con el servidor de internet.</para> + <para +>Servidor CDDB: POR FAVOR (sí, ¡estoy gritando!) vaya a freedb.org y busque la réplica del servidor más cercana a usted. De esta forma la carga se equilibra entre los servidores réplica. Sin embargo, como primer intento, esta configuración debería funcionar, pero POR FAVOR...</para> + <para +>Puerto y transporte: Existen 2 combinaciones, que incluso las réplicas deberían entender.</para> + <itemizedlist> + <listitem +><para +>Puerto=80 y Transporte=HTTP</para +></listitem> + <listitem +><para +>Puerto=8880 y Transporte=CDDB</para +></listitem> + </itemizedlist> + <para +>Ambas funcionan de la misma forma en lo que respecta al servidor, pero como muchos cortafuegos bloquean el puerto 8880 de forma predeterminada, es posible que tenga mejor suerte con el puerto 80, ya que el puerto HTTP suele estar abierto para navegar por internet.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.5 Paso 05: pestaña Configuración de envío a CDDB</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Preferencias -> Configurar KAudioCreator... -> CDDB -> pestaña Enviar</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="cddbconfigurationsubmit.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de la pestaña Configuración de envío a CDDB de &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>En este ejemplo no queremos enviar ningún dato de CDs al servidor freedb. Para ello será suficiente quitar la primera casilla.</para> + <para +>Nota relativa a este ejemplo: Si un día encuentra un CD que todavía no está incluido en el servidor freedb o encuentra un error en una entrada del CD, puede enviar datos nuevos/actualizados. Marque la primera casilla de la parte superior de esta pestaña y, a continuación, utilice la dirección de correo electrónico de su sistema -que &kaudiocreator; habrá detectado- o marque el botón inferior e introduzca una nueva dirección de correo electrónico. Por favor, lea primero <link linkend="freedb" +>la sección sobre freedb</link +>. Se le pedirá una dirección de correo electrónico cuando envíe entradas nuevas o las actualice en el servidor, y cuando, por haber encontrado un error, vaya a enviar información actualizada, antes debería leer la información de freedb.org acerca del conteo de revisiones .</para +></listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.6 Paso 06: pestaña Configuración del extractor</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Preferencias -> Configurar KAudioCreator... -> Extractor</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="ripperconfiguration.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de la pestaña Configuración del extractor de &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Establezca las preferencias que aparecen en la captura de pantalla (¡asegúrese deque el directorio «/tmp» existe en su sistema!)</para> + <para +>«Pitar tras extraer cada pista»: márquelo para obtener información audible del progreso de la tarea.</para> + <para +>«Número de pistas a extraer simultáneamente»: lo siento, pero no se me ocurre qué razón habría para extraer más de una con una sola unidad lectora. ¿Leer y codificar en paralelo? No lo sé, pruébelo usted mismo.</para> + <para +>«Expulsar el CD tras extraer la última pista»: bueno, así sabrá que ha terminado. Haga lo que guste.</para> + <para +>«Carpeta temporal predeterminada»: Si marca esta casilla podría/debería especificar la ruta/directorio al que se extraerán los archivos wav. Esto es especialmente práctico si solo tiene espacio en otra unidad. Si se marca, los archivos se crearán en su directorio personal. Recuerde esta ruta si desea hacer algo con los propios archivos wav.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.7 Paso 07: pestaña Configuración del codificador</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Preferencias -> Configurar KAudioCreator... -> Codificador</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="encoderconfiguration.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de la pestaña Configuración del codificador de &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Finalmente, la configuración del codificador. Utilizaremos lame. Aquí tendremos un poco más de trabajo:</para> + <para +>Pulse en «Lame».</para> + <para +>Pulse en el botón «Configurar...».</para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="lameconfiguration.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de la Configuración de Lame en &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Introdúzcalo todo tal y como está en la captura de pantalla. La entrada de la orden es un poco larga, por tanto necesitará desplazarse un poco a la derecha.</para> + <para +>Las preferencias son más o menos autoexplicativas. Existe un espacio entre «--preset» y «extreme».</para> + <para +>«--preset extreme» define la calidad de audio de los mp3. Tal y como se mencionó anteriormente, ésta es una configuración para una calidad de audio muy buena, suficiente incluso para sistemas esteréos de alta fidelidad muy buenos. La tasa de bits resultante es de 224 a 256 kbps de media. El factor de compresión conseguido es 6,3. Hay un buen equilibrio entre calidad de audio y consumo de espacio. El espacio de almacenamiento/memoria es barato hoy en día, ¿no es cierto?</para> + <para +>Escriba «--id3v1-only» para limitar la creación de etiquetas a V1/V1.1. Bórrelo si desea utilizar también etiquetas id3v2. kid3 es un muy buen etiquetador para KDE en caso de que desee modificar después las etiquetas. %f y %o deberían ser las variables internas para los nombres del archivo de entrada (incluyendo la ruta completa) y del archivo de salida (incluyendo la ruta completa).</para> + <para +>Pulse «Aceptar» para cerrar y aplicar las preferencias.</para> + <para +>«Ruta del archivo codificado». Volviendo a la pestaña de Configuración del codificador, definiremos aquí el directorio de destino, incluyendo el nombre del directorio para los archivos del CD copiado. Estas variables rellenarán los datos correspondientes cada vez que extraiga audio de un CD. Los datos del CD se pueden introducir manualmente o pueden obtenerse a través de internet (CDDB). Tal y como ya se configuró en este ejemplo, utilizaremos freedb y obtendremos así los datos automáticamente. Juegue con el asistente, pero al final de este ejemplo la entrada debería ser:</para> + <para +>«/usr/share/cd/%{artista_del_álbum} - %{título_del_álbum} - %{año}/%{número} - %{título}.%{longitud}»</para> + <para +>Configure el resto como en la captura de pantalla. Unos comentarios para futuras utilizaciones, al margen de este ejemplo:</para> + <para +>«Número de archivos wav a codificar simultáneamente»: ¿Por qué querría nadie codificar más de un archivo wav a la vez? ¿Máquinas multiprocesador? Bueno, pronto las habrá, por tanto, si en el momento de leer esto ya tiene una, pruébelo.</para> + <para +>«Crear una lista de reproducción del álbum»: También se puede hacer. Veo el asistente, juego con él, pero ¿con qué objeto? La mayor parte, si no todos los dispositivos reproducen los archivos en orden alfabético. Cree una lista de reproducción con un reproductor de audio como xmms. Podrá cambiar el orden de las canciones y algunos dispositivos verán la lista de reproducción y reproducirán en el orden nuevo, y no en orden alfabético.</para> + <para +>«Prioridad del codificador»: para los fanáticos, :-) , juegue con él, si así lo desea. Como habrá adivinado, más alta implica más velocidad.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para +>Esto es todo, ya hemos terminado la configuración básica de KAudioCreator. Esta configuración se utiliza como predeterminada para cada extracción de audio. Si ha elegido la estructura correcta para la organización de la música, no necesitará cambiarla de nuevo. ;-)</para> + +</sect1> + +<sect1 id="Ripping-a-CD"> + <title +>E 2 Extraer audio de un CD</title> + + <para +>¡Preparado! Esta sección describirá el proceso de extracción de audio de un CD a su disco duro. Crearemos archivos mp3. La estructura de directorios, la forma en que la música se organiza en su disco duro, se describió y configuró en la sección anterior. Conéctese a internet ahora, ya que somos perezosos y queremos obtener los datos del CD de freedb. El proceso que se describe en esta sección se deberá repetir para cada CD del que quiera extraer el audio.</para> + <para +>Como hemos utilizado un CD que todavía no se encuentra listado en freedb, las capturas de pantalla podrían tener un aspecto un poco diferente del que se mostrará si el CD se encuentra en freedb. Aprenderá a introducir los datos en el CD manualmente, en lugar de obtenerlos de internet; no obstante, los comentarios explicarán las diferencias.</para> + <para +>No intente buscar el CD que hemos utilizado en este ejemplo. Es una edición «especial» para el manual. ;-) Desgraciadamente, en estos días nunca se sabe...</para> + <para +>Vamos allá...</para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 2.1 Paso 01: Extracción de audio de un CD.</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>La ventana principal con un CD de audio en la unidad:</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="cdinserted.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de la ventana principal de &kaudiocreator; con el cd introducido</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Si aún no lo ha hecho, introduzca el CD en la unidad cuyo ID sea el especificado en esta ventana.</para> + <para +>En un instante, en la ventana debería aparecer la información sobre las pistas y su longitud , tal y como se muestra en la captura de pantalla, siempre y cuando el CD haya sido identificado como un CD de audio y cdparanoia haya podido leerlo.</para> + <para +>Si esto no sucede, consulte la sección <link linkend="faq" +>Preguntas y respuestas</link +> o vuelva a la sección que se ocupa de la configuración básica.</para> + <para +>Atención: si la información del CD ya se hubiera obtenido de forma correcta de freedb, se rellenarían los títulos de las canciones y se mostraría el titulo de la pista, y el nombre del artista y del álbum.</para> + <para +>En el caso de que exista más de una entrada en la base de datos que coincida con la clave «única» del CD, aparecerá una ventana en la que podrá seleccionar la entrada de la base de datos que considere más apropiada para su CD.</para> + <para +>Si no ha marcado la casilla para hacer peticiones automáticamente a freedb («Preferencias - Configurar KAudioCreator... - CD»), puede hacer esa petición pulsando el primer icono de la ventana principal.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.2 Paso 02: El editor de álbum - Introduzca los datos del álbum y el título de la primera canción</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Haga una doble pulsación en cualquier parte de la primera fila, resaltada en azul (pista 1):</action> + </para> + <para +>Ahora puede introducir los datos.</para> + <para> + <screenshot> + <mediaobject> + <imageobject +><imagedata fileref="startalbumeditor.png" format="PNG"/></imageobject> + <textobject +><phrase +>Captura de pantalla del editor de álbum de &kaudiocreator;</phrase +></textobject> + </mediaobject> + </screenshot> + </para> + <para +>Introduzca los datos del álbum para su CD de acuerdo con el patrón de la siguiente captura de pantalla. El título de la canción de la pista 1 en el cuadro Título, y el resto de los datos del CD en los demás cuadros.</para> + <para +>No necesitará introducir el artista, a menos, por supuesto, que tenga un disco con artistas diferentes para cada canción.</para> + <para +>El campo comentario de la pista puede utilizarse para realizar comentarios individuales para cada canción, mientras que el comentario del álbum se puede utilizar para incluir comentarios en todas las canciones.</para> + <para +>Atención: por supuesto, cuando haya obtenido los datos correctos de freedb el editor no estará vacío sino que contendrá los datos tal y como se muestra en la siguiente captura de pantalla. No obstante, siempre es una buena idea abrir el editor de álbum para comprobar que se está satisfecho tanto con los nombres del artista y del álbum (p.ej., para que todas las palabras empiecen con mayúscula o no) como para verificar que no hay comentarios no deseados.</para> + <para> + <screenshot> + <mediaobject> + <imageobject +><imagedata fileref="entersong1.png" format="PNG"/></imageobject> + <textobject +><phrase +>Captura de pantalla de &kaudiocreator; en la que se están introduciendo el título de la canción 1 y los datos del álbum</phrase +></textobject> + </mediaobject> + </screenshot> + </para> + <para +>Nota: En este ejemplo estamos utilizando solo etiquetas id3v1. Esto limita la longitud de los campos a 30 caracteres para el artista, el álbum y el título de la canción, y sólo 28 caracteres para el campo comentario. Si crea etiquetas id3v2 podrá utilizar campos de longitud ilimitada. Bueno, al menos &kaudiocreator; lo permite, pero no lo he comprobado. Esta opción se establece en la pestaña de configuración del codificador; puede echar un vistazo a la sección de configuración básica.</para> + <para +>Posteriormente, en cualquier momento podrá cambiar la información de la etiqueta de los archivos con un editor de etiquetas. Kid3 es una buena elección para los archivos mp3; con él puede crear también etiquetas id3v2.</para> + <para +>Las etiquetas pueden no estar soportadas por todos los codificadores/formatos de archivo. Vea la ayuda del codificador para obtener más información a este respecto.</para> + + <para +>Después de pulsar Aceptar aparecerá un mensaje de confirmación:</para> + <para> + <screenshot> + <mediaobject> + <imageobject +><imagedata fileref="confirmartistcarryover.png" format="PNG"/></imageobject> + <textobject +><phrase +>Captura de pantalla de &kaudiocreator; para confirmar el cambio de los datos del álbum</phrase +></textobject> + </mediaobject> + </screenshot> + </para> + <para +>Hemos cambiado los datos generales del álbum y aparece un mensaje, preguntando si deseamos modificar los datos para las demás canciones. Mejor, nos ahorrará trabajo. Pulse Sí.</para> + <para +>Atención: esta ventana no aparecerá si, por ejemplo, cambia el nombre del álbum en el cuadro Álbum. No obstante, el cambio será válido también para las demás canciones.</para> + + <para +>Y otra ventana emergente:</para> + <para> + <screenshot> + <mediaobject> + <imageobject +><imagedata fileref="setalbumcategory.png" format="PNG"/></imageobject> + <textobject +><phrase +>Captura de pantalla de &kaudiocreator; para seleccionar la categoría del álbum</phrase +></textobject> + </mediaobject> + </screenshot> + </para> + <para +>Se nos pedirá que seleccionemos una categoría musical para el álbum. No confunda esto con el género para las etiquetas id3. Existen 11 categorías predefinidas por freedb para establecer un orden previo de los IDs de los CDs. Como nuestro CD no está en ninguna base de datos (debido al modo en el que usamos el programa), tendremos que elegir una para que si decidimos enviar los datos del CD éste pueda ser ordenado de forma correcta en la base de datos de freedb.</para> + <para +>Seleccione la entrada que mejor encaje con el estilo del CD que desea copiar. De todos modos, no es importante para este ejemplo, ya que no enviaremos los datos del CD. Para obtener más información vaya a freedb.org e infórmese acerca de las categorías. Por ejemplo, el pop y el rap están bajo la categoría rock.</para> + <para +>Después de pulsar Aceptar volverá a la ventana principal. Haga una doble pulsación sobre la fila de la segunda pista.</para> + <para +>Aparecerá de nuevo del editor del álbum y podrá ver que el cuadro del álbum ya está rellenado con los datos introducidos en la primera pista. Sólo necesitará introducir las entradas del cuadro Pista actual: el título de la canción y cualquier otra información si lo desea.</para> + <para +>Pulse en la siguiente fila de la ventana principal y continúe hasta que haya introducido los datos de todas las pistas del CD.</para> + <para +>Atención: este menú emergente no se mostrará si ha obtenido los datos de freedb. Ya está ordenado en una de estas categorías en la base de datos.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 2.3 Paso 03: Inicio de la extracción de audio</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Pulse el botón «Extraer pistas seleccionadas», tal y como se muestra en la captura de pantalla</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="readytorip.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de &kaudiocreator; en la que se inicia del proceso de extracción de audio</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Es el tercer botón de la barra de herramientas. Advierta que el artista y el álbum se muestran sobre la lista de pistas.</para> + <para +>Advierta también que existe una marca delante de cada fila de pista. Sólo se procesarán las pistas que estén marcadas. Una sola pulsación marca o elimina la marca en la fila de la pista seleccionada. Asegúrese de que todas las pistas están seleccionadas o utilice el botón «Seleccionar todas las pistas» en la parte superior de la pantalla (no se muestra en la captura de pantalla) para seleccionar todas las pistas de una vez.</para> + + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="jobshavestarted.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de &kaudiocreator; con un mensaje indicando que han comenzado los trabajos</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Una vez que haya iniciado el proceso de extracción pulsando en el botón «Extraer pistas seleccionadas», aparecerá esta ventana de confirmación. Pulse Aceptar y, a continuación, echaremos un vistazo a la ventana de los trabajos para seguir el proceso.</para> + + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 2.4 Paso 04: Siguiendo el proceso en la ventana de trabajos</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Pulse en la pestaña «Trabajos» para acceder a la ventana de trabajos. Se encuentra en la parte superior izquierda de la pantalla, bajo la barra de herramientas con los botones.</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="jobcontrol.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de &kaudiocreator; con la ventana de control de trabajos</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Esta es la ventana de control de trabajos. La primera pista ya se ha extraído al disco duro. El estado del programa se muestra en la parte inferior izquierda de la pantalla, en la barra de estado.</para> + + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="encodernotfound.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de &kaudiocreator; mostrando que no se ha encontrado el codificador</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>¡Aarrrrgh! ¡Vaya! Ahora esto. Eso es lo que verá cuando intente utilizar un codificador que todavía no ha instalado. Las pistas que no se puedan codificar se marcarán con una «x» roja en la lista de trabajos.</para> + <para +>Por cierto, ¿ve cómo he hecho trampa? La ruta para el archivo tmp y la ruta de destino no son las que se configuraron en el ejemplo. Siento haberlo hecho, pero usted ya ha comprobado que tiene permiso de escritura sobre ambos directorios, el de los archivos temporales y el de destino, ¿no es cierto? ;-)</para> + <para +>Vamos allá de nuevo...</para> + + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="rippingandencoding.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de &kaudiocreator; con la extracción de audio y la codificación</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Vale, ahora empieza a estar claro por qué se produjo el error justo al terminar la extracción de la primera canción.</para> + <para +>¿Ve esto? El trabajo uno, la extración de la primera pista, está terminado, pero tenemos una entrada nueva: el trabajo 4, que es la codificación de la pista 1 en mp3. Por tanto, la extracción y la codificación se realizan en paralelo. Vea los mensajes de la barra de estado, en la parte inferior de la ventana, que dan detalles del proceso.</para> + <para +>No he podido encontrar una configuración para evitar este comportamiento. Lo único que parece ser configurable es el número de extracciones de audio y codificaciones en paralelo. Vaya, ¿se pueden tener más trabajos en paralelo? No lo se, ¿qué pasa con máquinas lentas? El AMD64 utilizado aquí no parece tener problemas en extraer y codificar una pista (dos diferentes) de manera simultánea.</para> + + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="rippingandencoding2.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Captura de pantalla de &kaudiocreator; extrayendo y codificando (2)</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Bueno, el ciclo continúa. Ahora estamos extrayendo el audio de la última pista mientras se codifica otra y se tiene otra más en la cola del codificador. Una vez se haya codificado la última pista, aparecerá brevemente un mensaje en la parte superior izquierda de la ventana.</para> + <para +>Ya está, estamos preparados para el siguiente CD. Disfrute escuchando su música...</para> + </listitem> + </varlistentry> + </variablelist> + </para> + +</sect1> + +</chapter> + + +<chapter id="credits"> + +<!-- Include credits for the programmers, documentation writers, and +contributors here. The license for your software should then be included below +the credits with a reference to the appropriate license file included in the KDE +distribution. --> + +<title +>Créditos y licencia</title> + +<para +>&kaudiocreator; </para> +<para +>Copyright del programa: Benjamin Meyer <email +>[email protected]</email +>, 2004 </para> +<para +>Colaboradores: <itemizedlist +> <listitem +><para +>¡Un hombre que se encuentra lejos! <email +>[email protected]</email +>.</para +></listitem> +</itemizedlist> +</para> + +<para +>Copyright de la documentación: Alan <email +>[email protected]</email +>, 2005 </para> +<para +>Un mal ejemplo: lo siento, no tengo correo electrónico. No puedo mantener este manual. Está pensado como un primer comienzo del manual de kaudiocreator. Si a alguien se le ocurre algo útil que añadir o cambiar, hágalo. Bueno, espero que al menos se ponga antes en contacto con el autor. Y si usted lee esto, eso significa que se ha mantenido esta sección y, por tanto, aceptado la propuesta. </para> + +<para +>Traducido por Santiago Fernández Sancho <email +>[email protected]</email +> y Javier Fdez. Retenaga <email +>[email protected]</email +>.</para +> +&underFDL; &underGPL; </chapter> + +<appendix id="installation"> +<title +>Instalación</title> + +<sect1 id="getting-kaudiocreator"> +<title +>Cómo obtener &kaudiocreator;</title> +&install.intro.documentation; </sect1> + +<sect1 id="requirements"> +<title +>Requisitos</title> + +<!-- +List any special requirements for your application here. This should include: +.Libraries or other software that is not included in tdesupport, +tdelibs, or tdebase. +.Hardware requirements like amount of RAM, disk space, graphics card +capabilities, screen resolution, special expansion cards, etc. +.Operating systems the app will run on. If your app is designed only for a +specific OS, (you wrote a graphical LILO configurator for example) put this +information here. +--> + +<para +>Para poder utilizar &kaudiocreator; necesitará &kde; 3.x y cdparanoia. Si desea crear archivos de audio comprimido, como mp3 u ogg, necesitará el codificador correspondiente.</para> + +<para +>&kaudiocreator; es mantenido dentro del CVS (SVN) de KDE como parte del paquete tdemultimedia. Si está familiarizado con svn puede descargarlo de ahí de forma anónima. No obstante, la mayor parte de las distribuciones incluyen un paquete precompilado, ya que &kaudiocreator; forma parte del paquete principal de KDE. Instale el paquete tdemultimedia de su distribución. Si lee esto, lo más probable es que ya lo haya encontrado... </para> + +<!-- For a list of updates, you may refer to the application web site +or the ChangeLog file, or ... --> + +</sect1> + +<sect1 id="compilation"> +<title +>Compilación e instalación</title> + +<!-- This entity contains the boilerplate text for standard --> +<!-- compilation instructions. If your application requires any --> +<!-- special handling, remove it, and replace with your own text. --> +<para +>Si es capaz de descargar las fuentes del SVN de KDE lo más probable es que no necesite esta información pero...</para> +&install.compile.documentation; </sect1> + +<sect1 id="configuration"> +<title +>Configuración</title> + +<para +>Bueno, esta sección está pensada para aquellos que suelen instalar los programas a partir del código fuente, no para usuarios que utilizan los paquetes precompilados de su distribución.</para> + +<para +>Lo siento, en estos momentos no hay ayuda disponible sobre las opciones de configuración antes de compilar los fuente.</para> + +<para +>Si busca ayuda para configurar el programa de acuerdo con sus necesidades una vez se esté ejecutando, lo siguiente es para usted:</para> + +<para +>Como es un programa que puede llamar a muchos otros programas diferentes, tiene muchas cosas que configurar. Lo mejor es que lea el <link linkend="Example" +>ejemplo completo paso a paso</link +> para familiarizarse con las opciones de configuración. Incluye capturas de pantalla de las diferentes pestañas de configuración, y proporciona comentarios incluso para las opciones que no se utilizan en este ejemplo.</para> + +</sect1> + +</appendix> + +&documentation.index; +</book> + +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: + +vim:tabstop=2:shiftwidth=2:expandtab +--> + diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/jobcontrol.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/jobcontrol.png Binary files differnew file mode 100644 index 00000000000..d562ae1d7f2 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/jobcontrol.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/jobshavestarted.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/jobshavestarted.png Binary files differnew file mode 100644 index 00000000000..6d50f0bee78 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/jobshavestarted.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/kaudiocreatormainwindow800.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/kaudiocreatormainwindow800.png Binary files differnew file mode 100644 index 00000000000..d5ebe6428be --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/kaudiocreatormainwindow800.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/lameconfiguration.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/lameconfiguration.png Binary files differnew file mode 100644 index 00000000000..c93c1464eb8 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/lameconfiguration.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/readytorip.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/readytorip.png Binary files differnew file mode 100644 index 00000000000..8e3e8ea025d --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/readytorip.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/ripperconfiguration.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/ripperconfiguration.png Binary files differnew file mode 100644 index 00000000000..72abea16994 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/ripperconfiguration.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/rippingandencoding.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/rippingandencoding.png Binary files differnew file mode 100644 index 00000000000..5442a749db3 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/rippingandencoding.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/rippingandencoding2.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/rippingandencoding2.png Binary files differnew file mode 100644 index 00000000000..f9aa339031a --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/rippingandencoding2.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/setalbumcategory.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/setalbumcategory.png Binary files differnew file mode 100644 index 00000000000..fe0a3b5a737 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/setalbumcategory.png diff --git a/tde-i18n-es/docs/tdemultimedia/kaudiocreator/startalbumeditor.png b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/startalbumeditor.png Binary files differnew file mode 100644 index 00000000000..35a3ac23753 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kaudiocreator/startalbumeditor.png diff --git a/tde-i18n-es/docs/tdemultimedia/kioslave/Makefile.am b/tde-i18n-es/docs/tdemultimedia/kioslave/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kioslave/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/kioslave/Makefile.in b/tde-i18n-es/docs/tdemultimedia/kioslave/Makefile.in new file mode 100644 index 00000000000..cf95226b003 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kioslave/Makefile.in @@ -0,0 +1,613 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia/kioslave +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kioslave/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/kioslave/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kioslave/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kioslave/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kioslave/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=audiocd.docbook Makefile.in Makefile.am + +#>+ 2 +docs-am: audiocd.docbook + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kioslave + @for base in audiocd.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kioslave/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kioslave/$$base ;\ + done + +uninstall-nls: + for base in audiocd.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kioslave/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in audiocd.docbook ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kioslave/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kioslave/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kioslave/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/kioslave/audiocd.docbook b/tde-i18n-es/docs/tdemultimedia/kioslave/audiocd.docbook new file mode 100644 index 00000000000..e2ed8ffc2ee --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kioslave/audiocd.docbook @@ -0,0 +1,325 @@ +<article lang="&language;" id="audiocd"> +<title +>audiocd</title> +<articleinfo> +<authorgroup> +<author +>&Rik.Hemsley; &Rik.Hemsley.mail;</author> +<author +><personname +><firstname +>Benjamin</firstname +><surname +>Meyer</surname +></personname +></author> +<othercredit role="translator" +><firstname +>Santiago</firstname +><surname +>Fernández Sancho</surname +><affiliation +><address +><email +>[email protected]</email +></address +></affiliation +><contrib +>Traductor</contrib +></othercredit +> +</authorgroup> + +<date +>2004-09-16</date> +<releaseinfo +>2.30.00</releaseinfo> + +</articleinfo> + +<para +>Le permite tratar <acronym +>CD</acronym +>s de audio como un sistema de archivos «real», donde las pistas están representadas como archivos, y cuando se copian desde la carpeta son extraídas digitalmente desde el <acronym +>CD</acronym +>. Así se asegura una copia perfecta de los datos audio.</para> + +<para +>Para ver como funciona este esclavo, inserte un <acronym +>CD</acronym +> de audio en su &CD-ROM; y teclee <userinput +>audiocd:/</userinput +> en &konqueror;. Al cabo de unos segundos verá una lista de pistas y algunas carpetas.</para> + +<para +>Los <acronym +>CD</acronym +>s de audio realmente no tienen carpetas, pero el esclavo audiocd los proporciona como algo conveniente. Si mira dentro de estos directorios verá que todos ellos contienen el mismo número de pistas. Si está conectado a Internet, algunos directorios tendrán los títulos de las pistas actuales mostradas como nombres de archivos.</para> + +<para +>La razón de la existencia de estas carpetas separadas es asegurar que pueda elegir el formato en el que desea escuchar (o copiar) las pistas en el <acronym +>CD</acronym +>.</para> + +<para +>Si arrastra una pista desde la carpeta <filename class="directory" +>Ogg Vorbis</filename +> y la suelta en otra ventana de &konqueror; abierta en su carpeta personal, debería ver un cuadro de progreso que muestra que la pista está siendo extraída desde el <acronym +>CD</acronym +> y guardada en un archivo. Tenga en cuenta que Ogg Vorbis es un formato comprimido, de modo que el archivo en su directorio principal aparecerá bastante más pequeño que si hubiera copiado los datos brutos.</para> + +<para +>El mecanismo trás esta operación es bastante simple. Cuando se solicita al esclavo audiocd que descargue una pista desde la carpeta <filename class="directory" +>Ogg Vorbis</filename +>, comienza a extraer datos digitales de audio desde el <acronym +>CD</acronym +>. A medida que envía los datos a su carpeta personal, éstos se codifican en formato Ogg Vorbis (El <acronym +>CD</acronym +> de audio es un formato sin comprimir sobre el que comenzar).</para> + +<para +>También podría intentar arrastrar un archivo con extensión <literal role="extension" +>.wav</literal +> y soltarlo en el reproductor de medios de &kde;, &noatun;. En este caso, el proceso bajo este escenario es similar, excepto que en lugar de codificar los datos en formato Ogg Vorbis, se guardan, tras una conversión muy sencilla desde datos binarios brutos (que es lo que representan los archivos <literal role="extension" +>.cda</literal +> de la carpeta superior), en formato «RIFF WAV», que es un formato no comprimido reconocido por la mayor parte de los reproductores multimedia.</para> + +<para +>&noatun; debería reproducir sin problemas los archivos <literal role="extension" +>.wav</literal +>, pero si observa algún problema, debería intentar utilizar la opción <option +>paranoia_level</option +>, que se explica más abajo.</para> + +<variablelist> +<title +>Opciones</title> + +<varlistentry> +<term +><option +>device</option +></term> +<listitem> +<para +>Fija la ruta al dispositivo <acronym +>CD</acronym +> de audio, ⪚ <userinput +>audiocd:/<option +>?device</option +>=<parameter +>/dev/sdc</parameter +></userinput +>. Normalmente, el slave tratará de encontrar un dispositivo <acronym +>CD</acronym +> con un <acronym +>CD</acronym +> audio en su interior, pero si fallara o dispone de más de un dispositivo <acronym +>CD</acronym +>, intente esta opción. Advierta que el diálogo de configuración le permite fijar una valor predeterminado para esta opción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>fileNameTemplate</option +></term> +<listitem> +<para +>Configura la plantilla del nombre de archivo, ⪚, <userinput +>audiocd:/<option +> ?fileNameTemplate</option +>=<parameter +>Track %{number}</parameter +></userinput +>. Tenga en cuenta que el diálogo de configuración le permitirá especificar un valor predeterminado para esta opción. Aparecerá un aviso si asigna una cadena vacía y no se mostrarán archivos.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>albumNameTemplate</option +></term> +<listitem> +<para +>Configura la plantilla del nombre del álbum, ⪚, <userinput +>audiocd:/<option +>?albumNameTemplate</option +>=<parameter +>%{albumartist} %{albumtitle}</parameter +></userinput +>. Tenga en cuenta que el diálogo de configuración le permitirá asociar un valor predeterminado para esta opción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>niceLevel</option +></term> +<listitem> +<para +>Configura el nivel adecuado para los codificadores, ⪚ <userinput +>audiocd:/<option +>?albumNameTemplate</option +>=<parameter +>niceLevel=10</parameter +></userinput +>. Tenga en cuenta que el diálogo de configuración le permitirá asociar un valor predeterminado para esta opción.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>paranoia_level</option +></term> +<listitem> +<para +>Fija la cantidad de errores detectados y corregidos usados al extraer los datos.</para> + +<variablelist> +<varlistentry> +<term +>Nivel 0</term> +<listitem> +<para +>Sin detección o corrección. Sólo útil si dispone de un dispositivo de <acronym +>CD</acronym +>s perfecto (lo que es improbable).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Nivel 1</term> +<listitem> +<para +>Activar la comprobación y correción básica de errores</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Nivel 2</term> +<listitem> +<para +>Predeterminado. Especifica que sólo se aceptará una extracción perfecta.</para> +</listitem> +</varlistentry> +</variablelist> + +<para +>El nivel 2 tiene una desventaja. La extracción puede ser muy lenta, de modo que la reproducción digital en tiempo real puede no funcionar correctamente. Si usted dispone de un dispositivo de <acronym +>CD</acronym +>s de buena calidad (más caro no es equivalente a mejor) probablemente no experimentará una extracción muy lenta, pero un dispositivo malo puede tardar días (!) en la extracción de datos audio desde un <acronym +>CD</acronym +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>cddbChoice</option +></term> +<listitem> + +<para +>Especifica que los nombres de las pistas de los <acronym +>CD</acronym +>s insertados se buscarán en la base de datos de los <acronym +>CD</acronym +>s en Internet. Los <acronym +>CD</acronym +>s audio no tienen nombres de pistas, pero la base de datos de <acronym +>CD</acronym +>s en Internet es un sistema inteligente que utiliza un identificador especial único generado por el número y longitud de las pistas en cada <acronym +>CD</acronym +> para hacer una referencia cruzada con la lista de pistas. Las listas de las pistas son un esfuerzo de la comunidad de Internet y están disponibles para todos. Ocasionalmente puede haber múltiples entradas. Puede especificar cual usar.</para> + +<para +>Puede enviar sus propias listas de pistas usando &kscd;, el reproductor &kde; de <acronym +>CD</acronym +>s.</para> + +<para +>De forma predeterminada audiocd intenta seleccionar el mejor.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title +>Ejemplos</title> +<varlistentry> +<term +><userinput +>audiocd:/?device=/dev/scd0&paranoia_level=0&cddbChoice=0</userinput +></term> +<listitem> +<para +>Ofrece una lista de las pistas en el <acronym +>CD</acronym +> audio insertado en <filename class="devicefile" +>/dev/scd0</filename +>, que en &Linux; especifica el primer dispositivo &CD-ROM; <acronym +>SCSI</acronym +>. Si copia las pistas desde el <acronym +>CD</acronym +>, la extracción digital se realizará sin correción o detección de errores. Se utilizará la base de datos <acronym +>CDDB</acronym +> utilizará la entrada 0.</para> +</listitem> +</varlistentry> +</variablelist> + +<qandaset> +<title +>Preguntas frecuentes</title> +<qandaentry> +<question> +<para +>Obtengo <errorname +>El archivo o directorio / no existe</errorname +>. ¿Cómo arreglo esto? ¡Tengo un <acronym +>CD</acronym +> de audio dentro de mi unidad!</para> +</question> + +<answer> +<para +>Intente ejecutar <userinput +><command +>cdparanoia</command +> <option +>-vsQ</option +></userinput +> desde su cuenta (no como <systemitem class="username" +>root</systemitem +>). ¿Ve una lista de pistas? Si no la ve, asegúrese de que tiene permiso para acceder al dispositivo de <acronym +>CD</acronym +>s. Si está utilizando emulación <acronym +>SCSI</acronym +> (lo que es posible si dispone de una grabadora <acronym +>IDE</acronym +> de <acronym +>CD</acronym +>s) asegúrese de que dispone de permisos de lectura y escritura en el dispositivo genérico <acronym +>SCSI</acronym +>, que probablemente es <filename class="devicefile" +>/dev/sg0</filename +>, <filename class="devicefile" +>/dev/sg1</filename +>, &etc;. Si esto no funciona, intente introducir <userinput +>audiocd:/?device=/dev/sg0</userinput +> (o similar) para indicar a kio_audiocd cuál es su dispositivo de &CD-ROM;.</para +> +</answer> +</qandaentry> +</qandaset> + + +</article> diff --git a/tde-i18n-es/docs/tdemultimedia/kmid/Makefile.am b/tde-i18n-es/docs/tdemultimedia/kmid/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kmid/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/kmid/Makefile.in b/tde-i18n-es/docs/tdemultimedia/kmid/Makefile.in new file mode 100644 index 00000000000..9fcca97cadf --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kmid/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia/kmid +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kmid/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/kmid/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kmid/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kmid/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kmid/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=index.docbook index.cache.bz2 Makefile.in Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) index.docbook + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid + @for base in index.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid/$$base ;\ + done + +uninstall-nls: + for base in index.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmid/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in index.docbook ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kmid/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kmid/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kmid/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/kmid/index.cache.bz2 b/tde-i18n-es/docs/tdemultimedia/kmid/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..abccb631208 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kmid/index.cache.bz2 diff --git a/tde-i18n-es/docs/tdemultimedia/kmid/index.docbook b/tde-i18n-es/docs/tdemultimedia/kmid/index.docbook new file mode 100644 index 00000000000..7a0e3a1596e --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kmid/index.docbook @@ -0,0 +1,1426 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kmid;"> + <!ENTITY package "tdemultimedia"> + <!ENTITY % Spanish "INCLUDE" +> <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>Manual de &kmid;</title> +<authorgroup> +<author +><firstname +>Antonio</firstname +> <surname +>Larrosa Jiménez</surname +> <affiliation +> <address +><email +>[email protected]</email +></address> +</affiliation> +</author> +<othercredit role="translator" +> <firstname +>Miguel</firstname +> <surname +>Revilla Rodríguez</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +></othercredit +> <othercredit role="translator" +><firstname +>Pedro</firstname +><surname +>Suárez Casal</surname +><affiliation +><address +><email +>[email protected]</email +></address +></affiliation +><contrib +>Traductor</contrib +></othercredit +> <othercredit role="translator" +><firstname +>Alejandro</firstname +> <surname +>Exojo Piqueras</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation +><contrib +>Traductor</contrib +></othercredit +> +</authorgroup> + +<copyright> +<year +>1999</year +><year +>2001</year> +<holder +>Antonio Larrosa Jiménez</holder> +</copyright> + +<date +>2002-02-05</date> +<releaseinfo +>2.00.00</releaseinfo> + +<abstract> +<para +>&kmid; es un reproductor multimedia de midi y karaoke. </para> +</abstract> + +<keywordset> +<keyword +>KMid</keyword> +<keyword +>midi</keyword> +<keyword +>karaoke</keyword> +<keyword +>multimedia</keyword> +<keyword +>mid</keyword> +<keyword +>kar</keyword> +<keyword +>reproductor</keyword> +<keyword +>música</keyword> +<keyword +>sonido</keyword> +<keyword +>fm</keyword> +<keyword +>awe</keyword> +<keyword +>gus</keyword> +</keywordset> +</bookinfo> + +<chapter id="introduction"> +<title +>Introducción</title> + +<para +>&kmid; es el reproductor multimedia de midi y karaoke de &kde;. Consta de ciertas características que no se encuentran en ningún otro reproductor midi de &UNIX;, como los gráficos en tiempo real y el resaltado del texto del karaoke entre otros. </para> + +<para +>Se sabe que &kmid; funciona en los sistemas operativos &Linux; y FreeBSD. Utiliza los controladores de sonido <acronym +>OSS</acronym +>, así que funciona en cualquier sistema en el que además funcionen &kde; y <acronym +>OSS</acronym +>. &kmid; además soporta el &Linux; Ultrasound Project Driver, que es necesario para conseguir sonido en las tarjetas <acronym +>GUS</acronym +>. También tengo planeado el soporte para el controlador <acronym +>ALSA</acronym +> tan pronto como se incorpore un dispositivo secuenciador. </para> + +<para +>&kmid; muestra las letras en la pantalla cambiando su color al mismo tiempo que se reproduce la música, así que es muy sencillo seguir la melodía de las canciones. </para> + +<para +>Espero que encuentre &kmid; tan divertido de utilizar como fue su desarrollo. </para> + +<para +>Antonio Larrosa Jiménez <email +>[email protected]</email +> </para> + +<sect1 id="kmids-features"> +<title +>Características de &kmid;</title> + +<para +>Estas son algunas de las características principales de &kmid;: </para> + +<itemizedlist> +<listitem> +<para +>Tiene un <emphasis +>entorno gráfico muy sencillo de utilizar</emphasis +> para mostrar el texto del karaoke con el <emphasis +>resaltado en tiempo real</emphasis +> de las letras. </para> +</listitem> +<listitem> +<para +>Consta de una vista gráfica de lo que se está reproduciendo en cada canal midi, resaltando las teclas pulsadas en los teclados (virtuales). </para> +</listitem> +<listitem> +<para +>El <emphasis +>mapeador midi</emphasis +> más potente que encontrará en cualquier sistema operativo. </para> +</listitem> +<listitem> +<para +><emphasis +>Arrastrar y soltar</emphasis +> de forma que puede soltar en &kde; cualquier archivo midi desde una ventana de &konqueror;. </para> +</listitem> +<listitem> +<para +>Puede <emphasis +>cambiar el tempo</emphasis +> de las canciones para adaptar la velocidad de reproducción a sus gustos. </para> +</listitem> +<listitem> +<para +>Muestra luces para seguir el ritmo de la canción. </para> +</listitem> +<listitem> +<para +>La fuentes para mostrar las letras del karaoke son <emphasis +>personalizables</emphasis +>. </para> +</listitem> +<listitem> +<para +>Soporta los dos métodos estándar de inclusión de letras en los archivos midi, esto es, letras o eventos de texto (y detecta automáticamente qué método es el que utiliza cada canción). </para> +</listitem> +<listitem> +<para +>Administración de sesiones. Si se está reproduciendo una canción cuando usted sale de &kde;, esa misma canción seguirá sonando la próxima vez que vuelva a entrar. </para> +</listitem> +<listitem> +<para +><emphasis +>Volumen ajustable</emphasis +> en tiempo real. </para> +</listitem> +<listitem> +<para +>Es capaz de reproducir archivos midi corruptos que no funcionan en otros reproductores. </para> +</listitem> +<listitem> +<para +>Puede abrir archivos de <emphasis +>midi y karaoke comprimidos con gzip</emphasis +> como su fuesen archivos normales. </para> +</listitem> +<listitem> +<para +>Consume aproximadamente el <emphasis +>0.1%</emphasis +> de mi <acronym +>CPU</acronym +> (dependiendo de la complejidad de la canción). </para> +</listitem> +<listitem> +<para +>Soporta sintentizadores midi externos, tarjetas <acronym +>AWE</acronym +>, <acronym +>FM</acronym +> y <acronym +>GUS</acronym +> (para estas últimas es necesario tener instalados los controladores <acronym +>LUP</acronym +> y gusd). </para> +</listitem> +<listitem> +<para +>Funciona en &Linux; y FreeBSD (y quizá en otros sistemas UNIX...). </para> +</listitem> +</itemizedlist> + +</sect1> +</chapter> + +<chapter id="general-usage"> +<title +>Uso general</title> + +<sect1 id="opening-songs"> +<title +>Apertura de canciones</title> + +<para +>Es posible abrir una canción de diferentes maneras. </para> + +<para +>La primera, puede seleccionar <guimenuitem +>Abrir...</guimenuitem +> en el menú <guimenu +>Archivo</guimenu +>, donde se le mostrará un diálogo de apertura estándar, en el que podrá seleccionar la canción que desea abrir. </para> + +<para +>Puede arrastrar un archivo desde una ventana de &konqueror; y soltarlo en la ventana de &kmid;. Puede también arrastrar y soltar varias canciones al mismo tiempo. </para> + +<para +>Si especifica una canción en la línea de órdenes cuando ejecuta &kmid; ésta también se abrirá. </para> + +<para +>Y el último modo es seleccionando la canción desde la lista de canciones de la colección activa. </para> + +</sect1> + +<sect1 id="playing-songs"> +<title +>Reproduciendo canciones</title> + +<para +>Para reproducir una canción, primero ábrala, y luego pulse en el botón <guiicon +>Reproducir</guiicon +> de la barra de herramientas, escoja la entrada <guimenuitem +>Reproducir</guimenuitem +> del menú <guimenu +>Canción</guimenu +>, o pulse la tecla <keycap +>Espacio</keycap +>. </para> + +<para +>Fíjese que cuando abre un archivo usando arrastrar y soltar, &kmid; empezará a reproducirlo automáticamente (si suelta más de un archivo, serán añadidos a una colección y serán reproducidos secuencialmente). </para> + +<para +>Una vez que &kmid; está reproduciendo una canción, puede mover el deslizador de tiempo pulsando el &MMB;, para ir a una posición en concreto. </para> + +<para +>Si una canción se está reproduciendo demasiado lento o demasiado rápido para su gusto, puede pulsar las flechas a ambos lados del <acronym +>LCD</acronym +> del tempo y hacer que se reproduzca más lento o más rápido. Para volver al tempo predeterminado, haga una doble pulsación en el <acronym +>LCD</acronym +> del tempo. </para> + +<para +>La tecla <keycap +>Espacio</keycap +> se usa para dos cosas. Si la música se está reproduciendo y pulsa la tecla <keycap +>Espacio</keycap +>, hará lo mismo que si pulsase el botón <guiicon +>pausa</guiicon +> o la entrada <guimenuitem +>Pausa </guimenuitem +> del menú <guimenu +>Canción</guimenu +>, que es parar la música. Si pulsa la tecla <keycap +>Espacio</keycap +> cuando no se reproduce música, &kmid; la reproducirá. </para> + +</sect1> + +<sect1 id="displaying-lyrics"> +<title +>Mostrando las letras</title> + +<para +>Existen dos métodos para mostrar las letras de una canción: usando <guimenuitem +> Eventos de texto</guimenuitem +> o <guimenuitem +>Eventos de letra</guimenuitem +>. Unas canciones usan lo primero, otras lo segundo, otras ambos y otras no incluyen letra :-) </para> + +<para +>&kmid; le permite escoger qué eventos mostrar, y además, tiene una opción para seleccionar automáticamente el tipo de eventos que una canción usa, por lo que no tendrá que cambiar el tipo manualmente. De este modo, si activa la entrada <guimenuitem +>Elegir texto automáticamente</guimenuitem +> del menú <guimenu +>Opciones</guimenu +>, el texto del karaoke será automáticamente seleccionado, pero aún puede cambiarlo si prefiere ver los otros caracteres. </para> + +<para +>Para seleccionar qué texto ver puede usar las entradas apropiadas en el menú <guimenu +>Opciones</guimenu +>, o sino pulsar las teclas <keycap +>1</keycap +> y <keycap +>2</keycap +> de su teclado para ver los <guimenuitem +>Eventos de texto</guimenuitem +> o los <guimenuitem +>Eventos de letra</guimenuitem +> respectivamente. </para> + +</sect1> + +</chapter> + +<chapter id="collections"> +<title +>Colecciones</title> + +<para +>Una colección es una lista de archivos midi que usted pone en un grupo, y que son reproducidos uno tras otro. Esta sección le ayudará a usarlas, y le dará unos cuantos consejos útiles para hacer un buen uso de ellas. </para> + +<sect1 id="creating-a-collection"> +<title +>Creando una colección</title> + +<para +>Para crear una colección, primero abra el diálogo <guilabel +>Administrador de colecciones</guilabel +>, seleccionando la entrada <guimenuitem +>Organizar ... </guimenuitem +> del menú <guimenu +>Colecciones</guimenu +>. Despúes pinche en el botón <guibutton +>Nuevo</guibutton +> e introduzca el nombre de la colección que desea crear. </para> + +<para +>Puede también copiar una colección completa seleccionándola y pulsando luego en el botón <guibutton +>Copiar</guibutton +>, el cual le preguntará por el nombre de la nueva colección, que tendrá inicialmente las mismas canciones que la colección seleccionada. </para> + +<para +>Una vez que tenga más de una colección, puede cambiar la colección activa desde el <guilabel +>Administrador de colecciones</guilabel +>. </para> + +</sect1> +<sect1 id="the-temporary-collection"> +<title +>La Colección temporal</title> + +<para +>La Colección temporal es una colección que se usa para guardar canciones que quiere reproducir pero no quiere añadir a ninguna otra colección. </para> + +<para +>Esta colección <emphasis +>no se guarda</emphasis +> a la salida de la aplicación, por lo que tenga esto en mente cuando añada canciones a ella. </para> + +<para +>Siga leyendo esta sección para un mejor entendimiento de la Colección temporal </para> + +</sect1> + +<sect1 id="adding-songs-to-a-collection"> +<title +>Añadiendo canciones a una colección</title> +<subtitle +>Cómo usar <guimenuitem +>AutoAñadir a colección</guimenuitem +></subtitle> + +<para +>Existen diversos modos de añadir canciones a una colección. </para> + +<para +>Antes de cada método, debe seleccionar la colección a la que desea añadir canciones en el <guilabel +>Administrador de colecciones</guilabel +>. Después puede pulsar en el botón <guibutton +>Añadir</guibutton +> para añadir una canción, lo que abrirá un diálogo para que elija la canción que desea añadir. </para> + +<para +>Los otros métodos para añadir una canción dependen del estado de la opción <guimenuitem +>AutoAñadir a colección</guimenuitem +>. </para> + +<para +>Si <guimenuitem +>AutoAñadir a colección</guimenuitem +> está activado, cuando abra una canción (usando <menuchoice +><guimenu +>Archivo</guimenu +> <guimenuitem +>Abrir...</guimenuitem +></menuchoice +> o arrastrando y soltando) ésta será añadida a la colección activa sin la intervención del usuario. </para> + +<para +>Si <guimenuitem +>AutoAñadir a colección</guimenuitem +> no está activado, cuando abra una canción la Colección temporal será activada y borrada, y las canciones abiertas serán añadidas a ella. </para> + +</sect1> + +<sect1 id="removing-songs-from-collections"> +<title +>Borrando canciones de las colecciones</title> + +<para +>Para borrar una canción de una colección, abra el <guilabel +>Administrador de colecciones</guilabel +>, seleccione la colección apropiada y la canción que desea borrar, y pulse el botón <guibutton +>Borrar</guibutton +>. </para> + +</sect1> + +<sect1 id="playing-order"> +<title +>Reproduciendo en orden o al azar</title> + +<para +>Puede seleccionar en qué orden se reproducirán las canciones. Si selecciona el modo <guimenuitem +>En orden</guimenuitem +> del submenú <guisubmenu +> Orden de reproducción</guisubmenu +> del menú <guimenu +>Colecciones</guimenu +>, las canciones se reproducirán en el mismo orden que fueron añadidas a la colección. </para> + +<para +>Si selecciona el <guimenuitem +>Modo aleatorio</guimenuitem +>, &kmid; generará una variable aleatoria con una distribución discreta y uniforme para reproducir verdaderamente las canciones de la colección al azar. Se irán dando valores a esa variable aleatoria mientras se genera la lista con el orden en que las canciones se reproducirán (seguramente quiera reproducir canciones, pero no reproducir una dos veces, y también desee ir a la última canción reproducida cuando pulse el botón <guibutton +>Canción anterior</guibutton +>, ¿no? :-) ). </para> + +<para +>La lista aleatoria de la colección que será reproducida se regenerará cada vez que añada o borre un archivo de esa colección y cada vez que pulse la entrada <guimenuitem +>Modo aleatorio</guimenuitem +> del menú. </para> + +</sect1> + +<sect1 id="selecting-from-a-collection"> +<title +>Seleccionando una canción de una colección</title> + +<para +>Puede seleccionar una canción para reproducir en el <literal +>Administrador de colecciones</literal +> o usando el desplegable que está sobre el texto del karaoke. </para> + +<para +>Puede también ir a la siguiente canción usando la entrada <literal +> Canción siguiente</literal +> del menú <literal +>Canción</literal +>, el botón <literal +>Canción siguiente</literal +> de la barra de herramientas, o la tecla <literal +>cursor derecho</literal +>. </para> + +<para +>Para ir a la anterior canción, use la entrada <guimenuitem +>Canción anterior </guimenuitem +> del menú <guimenu +>Canción</guimenu +>, el botón <guimenuitem +>Canción anterior</guimenuitem +> de la barra de herramientas, o pulse la tecla <keycap +>cursor izquierdo</keycap +> de su teclado. </para> + +</sect1> + +<sect1 id="deleting-a-collection"> +<title +>Borrando una colección</title> + +<para +>Para borrar una colección, simplemente abra el <guilabel +>Administrador de colecciones</guilabel +>, seleccione la colección que desea borrar y pulse en <guibutton +>Borrar</guibutton +>. Fácil, ¿no? </para> + +<para +>Tenga en cuenta que no puede borrar la Colección temporal, pero eso no es un problema ya que ésta no se guarda cuando sales de &kmid;. </para> + +</sect1> + +</chapter> + +<chapter id="midi-maps"> +<title +>Mapas midi</title> + +<sect1 id="what-is-a-midimap"> +<title +>¿Qué es un mapa midi?</title> + +<para +>Un mapa midi es algo que mapea unos eventos midi en el lugar de otros eventos midi. </para> + +<para +>Ésto es totalmente necesario si un sintetizador no interpreta los eventos estándar (esto es, si el sintetizador no es compatible con el Midi General). En este caso, un mapa midi puede traducir eventos de Midi General a otros que el sintetizador comprenda. </para> + +<para +>Por ejemplo, puede crear un mapa midi que convierta todos los eventos <literal +>Cambiar parche a piano brillante</literal +> a eventos <literal +> Cambiar parche a trompeta</literal +>, y en todos los puntos en los que la canción intente reproducir un piano, reproducirá una trompeta en su lugar. </para> + +<para +>Puede sonar feo, (¿por qué reproducir una trompeta cuando la canción está hecha para usar piano?) pero es muy útil. El estándar <acronym +>GM</acronym +> especifica que cuando un teclado midi recibe un evento para cambiar el parche a <literal +>0</literal +>, éste cambiará el parche actual a <literal +>Gran piano</literal +>, pero sintetizadores más viejos lo cambiarían por ejemplo a <literal +>Guitarra eléctrica</literal +> cuando reciben un <literal +>0</literal +>. El teclado viejo necesitaría un <literal +>3</literal +> (por ejemplo) para cambiar a un <literal +>Piano</literal +>. Y aquí es donde entra el mapa midi en acción, cambiando todos los <literal +> cambiar parche a 0</literal +> por <literal +>cambiar parche a 3</literal +> conseguiría realmente reproducir el instrumento correcto cuando esté hecho. </para> + +</sect1> + +<sect1 id="do-i-need-a-midi-map"> +<title +>¿Necesito un mapa midi?</title> + +<para +>En principio, si no dispone de un sintetizador externo, ¡no! </para> + +<para +>Si solo dispone de una tarjeta de sonido, los mapas midi no son necesarios ya que todas las tarjetas de sonido son compatibles con <acronym +>GM</acronym +> (ésto incluye tarjetas AWE, tarjetas <acronym +>GUS</acronym +>, dispositivos <acronym +>FM</acronym +> y otros más). </para> + +<para +>Si está pensando reproducir música a través de un sintetizador externo, y éste no es GM compatible, necesitará hacer un mapa midi para su teclado midi. Aunque quizá dedique una tarde entera a hacer su mapa midi y probar diferentes valores para todas las opciones, será gratamente recompensado cuando lo haya terminado, ya que entonces habrá encontrado todas las posibilidades ocultas de su teclado. Por ejemplo, yo tengo un Yamaha PSS-790 de bajo precio, que no es <acronym +>GM</acronym +> compatible y no tiene tantos instrumentos como un sintetizador <acronym +>GM</acronym +>, pero con el mapeador midi de &kmid; suena mucho mejor que muchas tarjetas de sonido (incluyendo AWE :-)), y es similar a la calidad de sonido a la encontrada en muchos sintetizadores externos (incluso sin seguir normas <acronym +>GM</acronym +>). </para> + +</sect1> + +<sect1 id="creating-a-midi-map"> +<title +>Creando un mapa midi</title> + +<para +>Todavía no existe ningún programa para generar mapas midi, por lo que tendrá que editar el archivo a mano (usando su editor de texto favorito). </para> + +<para +>Un mapa midi es un archivo de texto que contiene todas las traducciones necesarias, las cuales serán realizadas cuando se reproduzca la música. </para> + +<para +>Consiste en cuatro secciones: <literal +>PATCHMAP</literal +>, <literal +>KEYMAP</literal +>, <literal +>CHANNELMAP</literal +> y <literal +>OPTIONS</literal +>. </para> + +<para +>Cada sección debe aparecer sólo una vez, excepto la sección <literal +> KEYMAP</literal +> que puede aparecer tantas veces como sean necesarias con la condición de que cada aparición use un diferente TextID (continúe leyendo para ver más detalles). </para> + +<para +>La estructura general de un archivo mapa es: </para> + +<screen +>DEFINE PATCHMAP +... +END + +DEFINE KEYMAP "Nombre del mapa de teclado" +... +END + +DEFINE KEYMAP "Otro mapa del teclado" +... +END + +DEFINE CHANNELMAP +... +END + +OPTIONS +... +END +</screen> + +<para +>Puede comprobar que la palabra <literal +>DEFINE</literal +> se usa para especificar qué sección va a ser iniciada (excepto para <literal +>OPTIONS</literal +>), y <literal +>END</literal +> para especificar el final de cada sección. </para> + +<para +>Puede añadir comentarios comenzando una linea por el carácter <literal +>#</literal +>. </para> + +<para +>Por favor, no olvide enviarme su archivo mapa por correo electrónico para que en las siguientes versiones de &kmid; se incluya más soporte para los teclados no compatibles con el Midi General. </para> + +<sect2 id="the-patchmap-section"> +<title +>La sección <literal +>PATCHMAP</literal +></title> + +<para +>En esta sección se especifica cómo se mapearán los parches, desde GM a las especificaciones de su teclado. El uso general es: </para> + +<screen +>(Nombre de parche GM)=(<replaceable +>N</replaceable +>) [AllKeysTo M] +</screen> + +<para +>Donde <replaceable +>N</replaceable +> es el número que su teclado necesita para cambiar el parche al mismo que el estándar GM lo hace. </para> + +<para +>Fíjese en que el lado izquierdo del símbolo igual se ignora, ya que se supone que los parches <acronym +>GM</acronym +> están en orden (desde 0 hasta 127), y no se le permite cambiar el orden de las líneas ni omitir alguno de los 128 instrumentos. </para> + +<para +>La opción <literal +>AllKeysTo M </literal +> se usa para mapear notas que usan dicho instrumento a la tecla <literal +>M</literal +>. Por ejemplo, suponga que su teclado midi no tiene el sonido Gun shot (parche GM 127) por lo que desea mapearlo a un tambor de percusión (ejem.: tecla 60) que suena de forma similar a un disparo de pistola. Entonces podría poner en la línea 127 de la sección <literal +>PATCHMAP</literal +>: </para> + +<screen +>Gunshot =100 AllKeysTo 60</screen> + + +<para +>Con ésto, cuando un archivo midi intente reproducir una nota con el parche 127 (gun shot), se mapeará con el parche 100 (el parche de percusión de su teclado) y reproducirá la nota 60 (independientemente de la tecla que vaya a ser reproducida). </para> + +<para +>Fíjese que cuando uso la expresión «Parche de percusión» me refiero al parche por el que cada tecla reproduce diferentes tambores, timbales, maracas y otros más, y no al posible sonido que algunos teclados tienen, con el cual se reproduce un tono diferente tono del mismo tambor con cada tecla. </para> + +</sect2> + +<sect2 id="The-keymap-section"> +<title +>La sección <literal +>KEYMAP</literal +></title> + +<para +>La sección <literal +>KEYMAP</literal +> se usa para especificar cómo se mapearán las teclas a partir de un canal o instrumento dado. El uso es: </para> + +<screen +>DEFINE KEYMAP "Nombre del mapa de teclado" +C 0 =0 +C#0 =1 +D 0 =2 +... +END +</screen> + +<para +>Al igual que en la sección <literal +>PATCHMAP</literal +>, es muy importante el orden de las líneas y que todas ellas aparezcan (las 128). </para> + +<para +>Como puede definir múltiples mapas de teclado para diferentes canales e instrumentos, debe asignar nombres diferentes a cada uno de ellos en la primera línea. </para> + +<para +>Los mapas de teclado se usan principalmente para mapear teclas en el canal de percusión. Eche un vistazo a los mapas distribuídos para ver algunos ejemplos. </para> + +</sect2> + +<sect2 id="the-channelmap-section"> +<title +>La sección <literal +>CHANNELMAP</literal +></title> + +<para +>Esta sección puede usarse para mapear unos canales a otros. Por ejemplo, si desea intercambiar el primer canal y el segundo, puede hacerlo fácilmente en la sección <literal +>CHANNELMAP</literal +>. </para> + +<para +>Sin embargo, es más útil para teclados que necesitan el canal de percusión en un canal dado (el estándar GM usa el canal 10, otros usan el canal 16 y otros usan el canal 9). </para> + +<para +>Fíjese en que los dispositivos midi usan 16 canales, por lo que la sección <literal +>CHANNELMAP</literal +> tiene 16 líneas, desde la 0 a la 15, como esta: </para> + +<screen +>(N) = (M) [Keymap "Nombre"] [ForcePatch x] +</screen> + +<para +>Donde <literal +>N</literal +> es el canal que se mapeará al canal <literal +>M</literal +>. Si se usa la opción <literal +>Keymap</literal +>, el mapa de teclado llamado <literal +>Nombre</literal +> se usará en este canal (este mapa de teclado debe ser definido antes en el archivo mapa). Si se usa la opción <literal +>ForcePatch</literal +>, todos los eventos que intenten cambiar el parche que se usa en este canal serán ignorados, y se usará el parche <literal +>x</literal +> en su lugar. </para> + +<para +>La opción <literal +>ForcePatch</literal +> puede ser útil, por ejemplo, para usar siempre el parche percusión en el canal percusión. </para> + +</sect2> + +<sect2 id="the-options-section"> +<title +>La sección <literal +>OPTIONS</literal +></title> + +<para +>La sección <literal +>OPTIONS</literal +> contiene algunas opciones generales que pueden ser muy útiles: </para> + +<screen +>OPTIONS +PitchBenderRatio = r +MapExpressionToVolumeEvents +END +</screen> + +<para +>Puede especificar ambas opciones, sólo una, o ninguna de ellas. </para> + +<para +>El valor <literal +>PitchBenderRatio r</literal +>, contiene el ratio por el cual los eventos de inflexión de tono se multiplicarán. Esto es, que cuando un archivo midi intente enviar un evento de inflexión de tono con un valor <literal +>n</literal +>, el valor real que se enviará será <literal +>n*(r/4096)</literal +> (el valor <literal +>4096</literal +> es para no introducir puntos de decimales en el archivo mapa). </para> + +<para +>Se usa ésto porque el estándar <acronym +>GM</acronym +> dice que cuando un teclado midi recibe un evento de inflexión de tono con un valor de datos de 4096, debe subir la nota a una más alta, pero algunos teclados midi intentan subir la nota inicial dos o más notas más altas (¡incluso una octava más alta!) cuando reciben un 4096. Se puede arreglar fácilmente probando diferentes valores para que en vez de enviar 4096, KMid envíe el valor apropiado. </para> + +<para +>Cuando la opción <literal +>MapExpressionToVolumeEvents</literal +> se establece en el archivo mapa, y un archivo midi intenta enviar un evento expression, KMid enviará un evento volume que es entendido por muchos teclados no GM compatibles, y que ocasiona un efecto similar. Hay muchos archivos midi que usan eventos expression para atenuar el final de una canción, por lo que si cree que una música debería escucharse más suavemente, puede activar esta opción y ver si es éso lo que necesita, ya que su sintetizador midi puede estar ignorando los eventos expression porque no los entiende. </para> + +</sect2> + +</sect1> + +<sect1 id="using-midimaps"> +<title +>Usando los mapas midi</title> + +<para +>Para usar un mapa midi, simplemente abra el diálogo <guilabel +>Configuración midi</guilabel +> seleccionando la entrada <guimenuitem +>Configuración midi...</guimenuitem +> del menú <guimenu +>Opciones</guimenu +>. </para> + +<para +>Pulse entonces en <guilabel +>Navegar...</guilabel +>, seleccione el archivo mapa en el diálogo abrir archivo y ¡disfrute la música! :-) </para> +</sect1> +</chapter> + +<chapter id="advanced-features"> +<title +>Características avanzadas</title> + +<sect1 id="the-channel-view"> +<title +>Vista de canales</title> + +<para +>La vista de canales es una ventana donde se muestra un grupo de teclados (uno por cada canal midi). En estos teclados, las notas que van siendo reproducidas por cada instrumento se iluminan, con lo que puede ver lo que está tocando cada uno. </para> + +<sect2 id="changing-instruments"> +<title +>Cambiando instrumentos</title> + +<para +>Puede usar la vista de canales para cambiar el instrumento que se reproduce en cada canal. En cada uno de ellos hay un desplegable donde puede seleccionarlos. Una vez que los haya cambiado, el botón verde que está a su lado cambia a rojo para indicar que ese no es el instrumento predeterminado. </para> + +<para +>Si quiere establecer de nuevo el instrumento predeterminado, pulse en el botón rojo y éste será automáticamente restablecido. </para> + +</sect2> + +<sect2 id="changing-the-look"> +<title +>Cambiar el modo de vista</title> + +<para +>La vista de canales tiene dos modos (por ahora) para mostrar las notas reproducidas, que puede seleccionar desde el elemento <guimenuitem +>Opciones de vista de canales</guimenuitem +> en el menú <guimenu +>Preferencias</guimenu +>. </para> + +<para +>Puede escoger entre un modo en el que las teclas reproducidas son pulsadas, al igual que en un piano normal (<guilabel +>Modo 3D</guilabel +>), o un modo en el que las teclas también se rellenan con color rojo, por lo que las teclas pulsadas se reconocen rápidamente (<guilabel +>Modo 3D - relleno</guilabel +>). Si toca el piano u otro instrumento musical, puede usar esto para aprender a tocar una canción. He usado esta técnica (con una reducción del tempo) y es muy buena para aprender nuevas composiciones. </para> + +</sect2> + +</sect1> + +<sect1 id="the-tempo-lcd"> +<title +>El <acronym +>LCD</acronym +> tempo</title> + +<para +>Muestra el tempo con que una canción se está reproduciendo, es decir, la velocidad de la canción. Cuanto más alto sea el número, mas rápido se reproducirá. </para> + +<para +>Puede cambiar también el tempo de la canción si se reproduce demasiado rápido como para seguir la letra, pudiendo hacer que se reproduzca más lentamente. Para cambiar el tempo puede usar las flechas que aparecen a ambos lados del <acronym +>LCD</acronym +>. </para> + +<para +>Una vez haya cambiado el tempo, puede volver al tempo predeterminado con una doble pulsación en el <acronym +>LCD</acronym +>. </para> + +</sect1> + +</chapter> + +<chapter id="key-bindings"> +<title +>Teclas rápidas</title> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Tecla</entry> +<entry +>Acción</entry> +</row> +</thead> +<tbody> +<row> +<entry +><keycap +>Espacio</keycap +></entry> +<entry +>Reproduce la canción cargada si no se está reproduciendo, o la para si ya se está reproduciendo.</entry> +</row> +<row> +<entry +><keycap +>Backspace</keycap +></entry> +<entry +>Detiene la reproducción.</entry> +</row> +<row> +<entry +><keycap +>Cursor derecho</keycap +></entry> +<entry +>Canción siguiente en la colección actual.</entry> +</row> +<row> +<entry +><keycap +>Cursor izquierdo</keycap +></entry> +<entry +>Canción anterior en la colección actual.</entry> +</row> +<row> +<entry +><keycap +>Cursor arriba</keycap +></entry> +<entry +>Sube una línea de la letra.</entry> +</row> +<row> +<entry +><keycap +>Cursor abajo</keycap +></entry> +<entry +>Baja una línea de la letra.</entry> +</row> +<row> +<entry +><keycap +>Re Pág</keycap +></entry> +<entry +>Sube una página de la letra.</entry> +</row> +<row> +<entry +><keycap +>Av Pág</keycap +></entry> +<entry +>Baja una página de la letra.</entry> +</row> +<row> +<entry +><keycap +>1</keycap +></entry> +<entry +>Muestra los eventos de texto.</entry> +</row> +<row> +<entry +><keycap +>2</keycap +></entry> +<entry +>Muestra los eventos de letra.</entry> +</row> +<row> +<entry +><keycombo action="simul" +>&Ctrl;<keycap +>O</keycap +></keycombo +></entry> +<entry +>Abre una canción.</entry> +</row> +<row> +<entry +><keycombo action="simul" +>&Ctrl;<keycap +>Q</keycap +></keycombo +></entry> +<entry +>Sale de &kmid;.</entry> +</row> +<row> +<entry +><keycap +>F1</keycap +></entry> +<entry +>Abre este documento.</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +</chapter> + +<chapter id="frequently-asked-questions"> +<title +>Preguntas frecuentes (PFs)</title> + +<qandaset> +<qandaentry> +<question> +<para +>¿Qué es exactamente un archivo midi? </para> +</question> + +<answer> +<para +>Un archivo midi es un archivo que contiene la información de cómo reproducir una canción, es decir, contiene simplemente las notas, el ritmo, velocidad, &etc; Ésto implica que el mismo archivo midi, si se reproduce en dos dispositivos diferentes, puede producir resultados muy diferentes, de la misma forma que una partitura dada puede ser tocada de formas muy diferentes por dos músicos distintos. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Puedo obtener mejor sonido con un reproductor mp3/wav, ¿por qué usar &kmid;? </para> +</question> +<answer> +<para +>Bien, no fuerzo a nadie a usar &kmid;, pero un archivo normal midi ocupa 50 Kb mientras que un mp3 normal ocupa 4 Mb (y ésto con una compresión de 1:80 :-) . Y con un buen dispositivo sintetizador, se pueden obtener calidades de sonido similares. Admás, con un archivo midi puede cambiar los instrumentos individualmente, cambiar la velocidad de la canción, &etc; por lo que obtiene un mayor control. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>No logro que mi tarjeta AWE funcione con KMid, ¿qué puedo hacer? </para> +</question> +<answer> +<para +>Ésto sucede cuando instala una distribución binaria (rpm, deb) de &kmid;. Ésto se debe a que &kmid; fue compilado sin soporte awe. Si le ocurre ésto, entonces deberá bajar la distribución de código fuente (por ejemplo, desde <ulink url="http://www.arrakis.es/~rlarrosa/kmid.html" +> la página de &kmid;</ulink +>). </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Quiero añadir un directorio completo a una colección, pero tener que añadir archivos midi uno a uno no es nada divertido. </para> +</question> + +<answer> +<para +>Estoy de acuerdo, y por eso &kmid; soporta arrastrar y soltar. Sólo Abra en &konqueror; el directorio que desee añadir, seleccione todos los archivos, arrástrelos, y suéltelos en &kmid;. </para> +<para +>Asegúrese de activar antes la opción <guimenuitem +>AutoAñadir a colección</guimenuitem +> para que los archivos se añadan automáticamente a la colección actual. Si no desea hacer ésto, los archivos se añadirán a la Colección temporal. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>No puedo seguir las letras, ¡se reproduce demasiado rápido! </para> +</question> +<answer> +<para +>Puede pulsar la flecha izquierda del <acronym +>LCD</acronym +> del tempo para hacer que se reproduzcan más lentamente. Recuerde que puede hacer una doble pulsación en el <acronym +>LCD</acronym +> para establecer el tempo predeterminado. </para +> +</answer> +</qandaentry> +</qandaset> + +</chapter> + +<chapter id="final-notes"> +<title +>Notas finales</title> + +<sect1 id="some-tips-and-tricks"> +<title +>Algunos consejos y trucos</title> + +<para +>Incluiré algunos consejos para que pueda obtener el máximo partido de todas las características de &kmid;: </para> + +<variablelist> +<varlistentry> +<term +>Abriendo archivos</term> +<listitem> +<para +>Yo siempre tengo un escritorio &kde; con una ventana de &konqueror; en mi carpeta raíz de midi, y &kmid; en este escritorio (si se reproduce un archivo midi) o sticky (si se reproduce un archivo karaoke :-)). De esta manera, cuando la colección activa termina, o cuando deseo escuchar otro archivo, voy a la ventana de &konqueror;, selecciono los archivos deseados y los arrastro a la ventana de &kmid;. </para> + +<para +>Supongamos que quiere reproducir unos archivos midi, pero no quiere añadirlos a ninguna colección. Para ello desactive la opción <guimenuitem +>AutoAñadir a colección</guimenuitem +> en el menú <guimenu +>Colecciones</guimenu +> y abra los archivos, los cuales se añadirán a la Colección temporal. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Otro método para crear una nueva colección</term> +<listitem> +<para +>Supongamos que dispone de los archivos midi <filename +>A.mid</filename +>, <filename +>B.mid</filename +> y <filename +>C.mid</filename +>. Primero sólo quiere reproducir el primer archivo midi, por lo que deselecciona <guimenuitem +>AutoAñadir</guimenuitem +> y abre <filename +>A.mid</filename +>. Usted tendrá la Colección temporal con un solo archivo midi. </para> +<para +>Entonces decide reproducir también B y C, y hacer una colección con todos ellos, ¿qué puede hacer? </para> +<para +>Fácil, seleccione <guimenuitem +>AutoAñadir</guimenuitem +> y abra <filename +>B.mid</filename +> y <filename +>C.mid</filename +> (a través de los múltiples métodos). Serán añadidos automáticamente a la Colección temporal, que contendrá entonces a <filename +>A.mid</filename +>, <filename +>B.mid </filename +> y <filename +>C.mid</filename +>. En este punto, puede abrir el diálogo <guilabel +>Organizar colecciones</guilabel +>, seleccionar la Colección temporal y pulsar en el botón <literal +>Copiar</literal +>, introducir el nombre de la nueva colección, y ya está hecho. Ya tiene una nueva colección que contiene los archivos midi A, B y C, y que no se borra cuando cierre &kmid;. </para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="hall-of-kmids-friends"> +<title +>Sala de amigos de &kmid;</title> + +<para +>Ésta es la gente que me envió algún archivo midi o una postal, ¡gracias a todos! Escuchar sus canciones y ver sus postales me mantendrá programando más y más en &kmid;. </para> + +<itemizedlist> +<listitem> +<para +>Ola Sigurdson - <literal +>Cuidando de negocios</literal +> (Bachman Turner Overdrive).</para> +</listitem> +<listitem> +<para +>EG Lim - Una postal realmente bonita desde Penang.</para> +</listitem> +<listitem> +<para +>Guenther Starnberger - <literal +>Amadeus</literal +> (Falco) y <literal +>Schrei Nach Liebe</literal +> (Die Aerzte).</para> +</listitem> +<listitem> +<para +>Leandro Terrés - <literal +>All That She Wants</literal +> y <literal +>The Sign</literal +> (Ace of Base).</para> +</listitem> +<listitem> +<para +>Nick Stoic - Dos archivos midi.</para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="about-the-author"> +<title +>Sobre el autor</title> + +<para +>&kmid; ha sido hecho por Antonio Larrosa Jiménez, en Málaga (España). Soy un estudiante de Matemáticas en la Universidad de Málaga, actualmente estoy haciendo el tercer curso, por lo que no tengo mucho tiempo libre para mis aficiones, aunque siempre intento tener algo :-) . Mis aficiones incluyen : programacion, coleccionar archivos midi, reproducir música y probar teoremas ;-). </para> + +<para +>Si desea saber dónde bajar archivos de midi/karaoke, tiene alguna pregunta, desea informar de un fallo, una idea o característica que desearía ver en &kmid; o sólo quiere hacerme feliz, es libre de enviarme un correo electrónico a: <email +>[email protected]</email +> o <email +>[email protected]</email +>. </para> + +<para +>o escribirme por correo tradicional a: </para> + +<literallayout +>Antonio Larrosa Jimenez +Rio Arnoya 10 5B +Malaga (Spain) +</literallayout> + +<para +>Me harías realmente feliz si me enviase una postal del lugar donde vive o un archivo midi/karaoke de un grupo local de su país. Todo el mundo que me envíe una postal o un archivo midi aparecerá en la Sala de amigos de &kmid; de este archivo (siempre que no se opongan a ello). Por favor, contacte conmigo antes de enviarme algún archivo, porque puedo tenerlo ya. </para> + +<para +>Me gustaría señalar que &kmid; ha sido hecho completamente en mi tiempo libre, sin ninguna ayuda monetaria de alguna compañía o particular. Por eso tenga en mente cuando lo usa, que lo único que me mantiene trabajando en esto es el obtener alguna respuesta de sus usuarios (una postal o simplemente un correo electrónico). </para> + +<para +>Me gustaría agradecer a las siguientes personas su ayuda en el desarrollo de &kmid;: </para> + +<itemizedlist> +<listitem> +<para +>Paul J. Leonard <email +>[email protected]</email +> - Soporte para tarjetas AWE. </para> +</listitem> +<listitem> +<para +>Sebestyen Zoltan <email +>[email protected]</email +>- Portado a FreeBSD y testeo AWE. </para> +</listitem> +<listitem> +<para +>Christian Esken <email +>[email protected]</email +> - Por organizar el esfuerzo de KDE multimedia. </para> +</listitem> +<listitem> +<para +>Stephan Kulow <email +>[email protected]</email +>- Scripts configure y ayuda con <command +>automake</command +> y <command +>CVS</command +>. </para> +</listitem> +<listitem> +<para +>Jaroslav Kysela - Ayuda en el soporte para &Linux; de los controladores del proyecto Ultrasound. </para> +</listitem> +<listitem> +<para +>Takashi Iwai y Joseph H. Buehler - Arreglos para el tono de tarjetas AWE, siendo éste demasiado alto. </para> +</listitem> +<listitem> +<para +>Adrian Knoth - Por darme buenas noticias y muchas sugerencias. </para> +</listitem> +<listitem> +<para +>Kevin Street - Parche para soportar FreeBSD 3.0. </para> +</listitem> +<listitem> +<para +>Gracias también a Jose Luis Sánchez por su comprobación del soporte de GUS, Ignacio García por la comprobación del soporte de AWE, Hans Petter Bieker, Ola Sigurdson, Marc Diefenbruch, Peter Gritsch, Magnus Pfeffer, Urko Lusa, Peter-Paul Witta, Thorsten Westheider, Ulrich Cordes y toda la gente que me envió un parche, información de un fallo o simplemente un correo electrónico para darme ánimos. </para> +</listitem> +<listitem> +<para +>Y por supuesto a todos los músicos fabulosos a través de la red que nos siguen dando maravillosos archivos de midi y karaoke. </para> +</listitem> +</itemizedlist> + +<para +>Traducido por Pedro Suárez Casal <email +>[email protected]</email +>.</para +> + +</sect1> + +<sect1 id="copyright-and-license"> +<title +>Derechos de autor y licencias</title> + +<para +>Derechos de autor de &kmid;. 1999-2001. Antonio Larrosa Jiménez.</para> + +<para +>Derechos de autor de la documentación. 1999, 2001. Antonio Larrosa Jiménez.</para> +&underFDL; &underGPL; </sect1> + +</chapter> + +<appendix id="installation"> +<title +>Instalación</title> + +<sect1 id="how-to-obtain-kmid"> +<title +>Cómo obtener &kmid;</title> +&install.intro.documentation; <para +>Adicionalmente, podrá encontrar &kmid; en su página web, que es <ulink url="http://www.arrakis.es/~rlarrosa/kmid.html" +> http://www.arrakis.es/~rlarrosa/kmid.html</ulink +>. En la página web puede seguir su desarrollo, ver más información sobre él, algunas capturas de pantalla, una lista de sitios desde dónde puede bajar más canciones de karaoke, &etc; </para> + +</sect1> + +<sect1 id="requirements"> +<title +>Requerimientos</title> + +<para +>&kmid; necesita para funcionar:</para> + +<itemizedlist> +<listitem> +<para +>&kde; Bueno, probablemente ya tenga esto :-) </para> +</listitem> +<listitem> +<para +>Una tarjeta de sonido. Se recomienda una buena tarjeta de sonido y/o un sintetizador externo, ya que la calidad del sonido depende en gran medida de la tarjeta de sonido: no es lo mismo usar un dispositivo FM que usar una tarjeta AWE. </para> + +<para +>Si no dispone de tarjeta de sonido, puede compilar &kmid; con <literal +>MODE_DEMO_ONLYVISUAL</literal +> definido y funcionará como si la tuviese (pero no podrá escuchar la música, por supuesto :-( ). </para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="compilation-and-installation"> +<title +>Compilación e instalación</title> +&install.compile.documentation; <para +>He incluído varios ejemplos que se encuentran instalados en <filename class="directory" +>$dollar;<envar +>KDEDIR</envar +>/share/apps/kmid</filename +>. </para> + +<para +>Si encuentra algún problema, no dude en contactar con alguna de las listas de correo de &kde; o en enviarme un mensaje directamente a mí. </para> + +</sect1> + +</appendix> + +</book> +<!-- +Local Variables: +mode: sgml +sgml-omittag: nil +sgml-shorttag: t +End: +--> diff --git a/tde-i18n-es/docs/tdemultimedia/kmix/Makefile.am b/tde-i18n-es/docs/tdemultimedia/kmix/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kmix/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/kmix/Makefile.in b/tde-i18n-es/docs/tdemultimedia/kmix/Makefile.in new file mode 100644 index 00000000000..b410b37a004 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kmix/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia/kmix +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kmix/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/kmix/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kmix/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kmix/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kmix/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=index.docbook kmix-window.png index.cache.bz2 kmix-channel-record.png Makefile.in kmix-channel-playback.png Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) kmix-channel-record.png kmix-window.png index.docbook kmix-channel-playback.png + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix + @for base in kmix-channel-record.png kmix-window.png index.docbook kmix-channel-playback.png ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix/$$base ;\ + done + +uninstall-nls: + for base in kmix-channel-record.png kmix-window.png index.docbook kmix-channel-playback.png ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kmix/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in kmix-channel-record.png kmix-window.png index.docbook kmix-channel-playback.png ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kmix/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kmix/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kmix/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/kmix/index.cache.bz2 b/tde-i18n-es/docs/tdemultimedia/kmix/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..84d2ac4f29d --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kmix/index.cache.bz2 diff --git a/tde-i18n-es/docs/tdemultimedia/kmix/index.docbook b/tde-i18n-es/docs/tdemultimedia/kmix/index.docbook new file mode 100644 index 00000000000..4aec2d5341c --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kmix/index.docbook @@ -0,0 +1,848 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kmix;"> + <!ENTITY package "tdemultimedia"> + <!ENTITY % Spanish "INCLUDE" +> <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>El manual de &kmix;</title> + +<authorgroup> +<author +><firstname +>Matt</firstname +> <surname +>Johnston</surname +> <affiliation +> <address +><email +>[email protected]</email +></address> +</affiliation> +</author> + +<othercredit role="developer" +><firstname +>Christian</firstname +> <surname +>Esken</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation> +<contrib +>Desarrollador</contrib> +</othercredit> + +<othercredit role="developer" +><firstname +>Helio</firstname +> <surname +>Chissini de Castro</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation> +<contrib +>Desarrollador</contrib> +</othercredit> + + +<othercredit role="developer" +><firstname +>Stefan</firstname +> <surname +>Schimanski</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation> +<contrib +>Desarrollador</contrib> +</othercredit> + +<othercredit role="reviewer" +><firstname +>Lauri</firstname +> <surname +>Watts</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation> +<contrib +>Revisor</contrib> +</othercredit> +<othercredit role="translator" +><firstname +>Salvador</firstname +><surname +>Gimeno Zanón</surname +><affiliation +><address +><email +>[email protected]</email +></address +></affiliation +><contrib +>Traductor</contrib +></othercredit +><othercredit role="translator" +><firstname +>Miguel</firstname +> <surname +>Revilla Rodríguez</surname +><affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +></othercredit +><othercredit role="translator" +><firstname +>Santiago</firstname +> <surname +>Fernández Sancho</surname +><affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +></othercredit +> +</authorgroup> + +<copyright> +<year +>1996</year +><year +>2005</year> +<holder +>Christian Esken y Matt Johnston</holder> +</copyright> + +<legalnotice +>&FDLNotice;</legalnotice> + +<date +>2005-02-08</date> +<releaseinfo +>2.2</releaseinfo> + +<abstract +><para +>&kmix; es una aplicación que le permite cambiar el volumen de su tarjeta de sonido.</para +></abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>KMix</keyword> +<keyword +>tdemultimedia</keyword> +<keyword +>sonido</keyword> +<keyword +>volumen</keyword> +<keyword +>mezclador</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title +>Introducción</title> + +<para +>&kmix; es el programa de mezclas de &kde; para tarjetas de sonido. Aunque pequeño, está lleno de funcionalidades. El programa le ofrecerá controles para cada una de sus tarjetas de sonido.</para> + +<para +>&kmix; soporta una gran variedad de plataformas y controladores de sonido:</para> + +<itemizedlist> +<listitem +><para +>El controlador de sonido ALSA.</para +></listitem> +<listitem +><para +>Todas las plataformas que utilicen Open Sound System. Concretamente, se ha probado en &Linux;, FreeBSD, NetBSD y BSDI.</para +></listitem> +<listitem +><para +>Máquinas basadas en &Solaris;.</para +></listitem> +<listitem +><para +>Máquinas basadas en &IRIX;.</para +></listitem> +<listitem +><para +>Máquinas basadas en &HP-UX;.</para +></listitem> +</itemizedlist> + +<para +>Si tiene instalados los controladores ALSA u Open Sound System, KMix utilizará el controlador ALSA.</para> + +</chapter> + +<chapter id="working-with-kmix"> +<title +>Trabajar con &kmix;</title> + +<sect1 id="basic-usage"> +<title +>Básico</title> + +<para +>El uso de &kmix; es bastante intuitivo. Cada dispositivo de mezclas que su tarjeta ofrezca aparece representado por un deslizador de volumen. Los dispositivos mono tendrán un solo deslizador, mientras que los dispositivos estéreo pueden tener uno o dos, dependiendo de lo que seleccione. Además, existe un deslizador para controlar el balance de los altavoces en la zona inferior de la ventana de &kmix;. Si tiene más de una tarjeta de sonido, cada una aparecerá en su propia pestaña. <screenshot> +<screeninfo +>La ventana principal de &kmix;</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="kmix-window.png" format="PNG"/></imageobject> +<textobject +><phrase +>La ventana principal de &kmix;</phrase +></textobject> +</mediaobject> +</screenshot> + +</para> + + +<para +>La ventana tiene tres secciones con los controles de las tarjetas de sonido: <simplelist> +<member +>Salida: Incluye los controles relacionados directamente con la salida de sonido, como el control de volumen «Maestro».</member> +<member +>Entrada: Incluye todos los controles relacionados con la grabación, como "Captura".</member> +<member +>Parámetros: Incluye todos los controles que permitan activar o desactivar una funcionalidad (como «Mic Boost (+20dB)»), y selecciones de controles múltiples (como «seleccionar micrófono: Mic1 o Mic2»).</member> +</simplelist> +</para> + +<para +>Además están los controles de volumen. KMix utiliza LEDs. La regla de coloreado general es:</para> +<simplelist> +<member +>Verde: Un LED encargado de la reproducción de música.</member> +<member +>Rojo: Un LED encargado de la grabación.</member> +<member +>Amarillo: Un LED encargado de capacidades especiales de la tarjeta de sonido.</member> +</simplelist> +</sect1> + +<sect1 id="volume-sliders"> +<title +>Controles de volumen</title> + +<para +>Los controles de volumen de la sección «Salida» y «Entrada» son (de arriba hacia abajo): <screenshot> +<screeninfo +>Control de volumen (Sección «Entrada»)</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="kmix-channel-playback.png" format="PNG"/></imageobject> +<textobject +><phrase +>Control de volumen (Sección «Entrada»)</phrase +></textobject> +</mediaobject> +</screenshot> + +<simplelist> +<member +>Un icono que representa la función de control.</member> +<member +>Un LED verde de silencio, que le permite silenciar un control (la luz se apaga/se vuelve oscura) o desactivar el silencio nuevamente (la luz se enciende/se vuelve brillante).</member> +<member +>Un deslizador para el control de volumen (Truco: Puede ocultar la etiqueta del deslizador, por ejemplo, si el mezclador ocupa gran parte de su pantalla).</member> +<member +>Si un control soporta grabación, tendrá un LED rojo de grabación. Si el LED está encendido (rojo brillante), el control estará seleccionado para grabar. Si no está encendido (rojo oscuro), el control NO estará seleccionado para grabar.</member> +</simplelist> + +<screenshot> +<screeninfo +>Control de volumen con parámetros de grabación (Sección"Salida")</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="kmix-channel-record.png" format="PNG"/></imageobject> +<textobject +><phrase +>Control de volumen con parámetros de grabación (Sección"Salida")</phrase +></textobject> +</mediaobject> +</screenshot> + + +</para> + +<para +>Los controles de la sección «Parámetros» consisten en un LED y una etiqueta reducida describiendo la función. Por favor, recuerde, los LEDs rojos se utilizan para grabación, y los LEDs amarillos se utilizan para características especiales de las tarjetas de sonido. Sino está seguro del significado de un control, pregúntele al suministrador del controlador de su tarjeta de sonido (para la mayor parte de las distribuciones Linux actuales se utiliza ALSA de http://www.alsa-project.org).</para> + +<para +>Los deslizadores de volumen tienen un menú contextual, accesible mediante la pulsación del botón derecho en el deslizador o en el icono del dispositivo (en la parte superior). Pueden aparecer varias entradas en el menú, pero sólo se mostrarán aquellas que sean aplicables.</para> + +<variablelist> + +<varlistentry> +<term +><guilabel +>Separar canales</guilabel +></term> +<listitem +><para +>Muestra uno o dos deslizadores. Sólo están disponible con dispositivos estéreo. El deslizador de la derecha controla el volumen derecho y el de la izquierda el volumen izquierdo.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Silenciar</guilabel +></term> +<listitem +><para +>Habilita o deshabilita el sonido del dispositivo.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Ocultar</guilabel +></term> +<listitem +><para +>Sino está interesado en ajustar este dispositivo puede ocultarlo con esta opción. Si desea mostrarlo nuevamente, puede hacerlo seleccionando la opción <guilabel +>Canales</guilabel +> (ver más adelante).</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Configurar accesos rápidos</guilabel +></term> +<listitem +><para +>Puede controlar un dispositivo con su teclado. Utilice esta opción de menú para mostrar el diálogo de KDE <guilabel +>Configurar accesos rápidos</guilabel +>. Aquí podrá definir las teclas que incrementan y decrementan el volumen, y aquellas que silencian el dispositivo. Las teclas son globales y funcionan también cuando &kmix; está minimizado o empotrado.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Canales</guilabel +></term> +<listitem +><para +>Aparecerá un cuadro de diálogo donde podrá configurar cada sección (Salida, Entrada, Parámetros), con los canales que quiera ver.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Mostrar barra de menús</guilabel +></term> +<listitem +><para +>Esta opción no es específica de este dispositivo, pero afecta a la ventana del mezclador. Puede ocultar y mostrar la barra de menú con esta opción. También puede hacer utilizando el acceso rápido (normalmente CTRL-m).</para +></listitem> +</varlistentry> + +</variablelist> +</sect1> + +<sect1 id="panning-slider"> +<title +>Balance de los altavoces</title> + +<para +>Con este deslizador puede controlar la distribución de volumen entre el altavoz derecho y el izquierdo. Este deslizador es un regulador global, que afecta al volumen maestro. De manera predeterminada, está en la posición central. Arrastrando el deslizador a la izquierda baja el volumen del altavoz derecho y viceversa. Por supuesto, puede que ocurra al revés si sus altavoces no están correctamente colocados.</para> +<para +>Para sistemas con sonido envolvente el dispositivo maestro puede ser que solo regule los altavoces frontales. Esta es una limitación de su tarjeta de sonido. </para +> +<para +>Si su tarjeta de sonido no tiene dispositivo maestro, KMix puede que configure otro dispositivo. Para la mayor parte de la gente es un control de onda (o PCM).</para> + +</sect1> + +<sect1 id="configuration-options"> +<title +>Opciones de configuración</title> + +<para +>Utilice <guilabel +>Barra de menús -> Preferencias -> Configurar KMix...</guilabel +> para configurar sus preferencias. Estos elementos son:</para> + +<variablelist> +<varlistentry> +<term +><guilabel +>Empotrar en el panel</guilabel +></term> +<listitem +><para +>Si está marcada, &kmix; se empotrará en la bandeja del sistema cuando pulse el botón cerrar ventana. Sino está marcada, &kmix; se cerrará al pulsar el botón cerrar ventana. Atención: Después de cerrar la aplicación no podrá controlar el volumen a través de las teclas asignadas para esto.</para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Habilitar control de volumen en la bandeja del sistema</guilabel +></term> +<listitem +><para +>Si está activada, una pulsación con el botón izquierdo en el icono empotrado de KMix hará aparecer una ventana con un control de volumen para el dispositivo preferido (Nota: Actualmente no puede cambiar este dispositivo. KMix lo seleccionará en su lugar). Si la opción está desactivada, se mostrará la ventana principal de KMix al pulsar con el botón izquierdo del ratón sobre el icono empotrado de KMix.</para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Mostrar marcas</guilabel +></term> +<listitem +><para +>Muestra unas líneas para marcar la posición de los deslizadores.</para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Mostrar etiquetas</guilabel +></term> +<listitem +><para +>Muestra una etiqueta por cada uno de los dispositivos de sonido. Independientemente de que esta opción esté activada o no, si mantiene el ratón encima del icono de cualquier dispositivo, también obtendrá esta información.</para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Restaurar volúmenes al arrancar</guilabel +></term> +<listitem +><para +>Permite a KDE restaurar los volúmenes al arrancar: Restaura los niveles personales de volumen, guardados la última vez que salió. Si su sistema operativo guarda niveles de volumen, no necesitará esta opción (pero en un ordenador con múltiples usuarios posiblemente lo necesite).</para +></listitem> +</varlistentry> +</variablelist> + +</sect1> + + +</chapter> + + +<chapter id="working-with-kmixapplet"> +<title +>El panel del applet de &kmix;</title> + +<para +>El panel del applet de &kmix; es una interfaz alternativa de &kmix;. Puede añadirlo al panel de KDE utilizando el menú del panel (<guilabel +>Menú panel</guilabel +> -> <guilabel +>Añadir</guilabel +> -> <guilabel +>Applet</guilabel +> -> <guilabel +>Mezclador de audio</guilabel +>). </para> + +<para +>Puede trabajar con el applet &kmix; de la misma forma que se describe para la <link linkend="working-with-kmix" +>ventana principal</link +>, incluyendo el menú contextual. Debido a la limitación de espacio en el panel existen las siguientes diferencias: <simplelist> +<member +>No hay menú principal disponible.</member> +<member +>Si tiene varias tarjetas de sonido, no podrá cambiar el mezclador seleccionado después de la selección inicial.</member> +<member +>No hay icono empotrado. Si desea utilizar el elemento empotrado debería iniciar un &kmix; adicional desde el menú K (Normalmente está instalado en <guilabel +>Menú K</guilabel +> -> <guilabel +>Multimedia</guilabel +> -> <guilabel +>Mezclador de sonido</guilabel +>).</member> +<member +>Los iconos solo estarán disponibles cuando el panel sea lo suficientemente grande.</member> +<member +>Los dispositivos disponibles no tienen etiquetas.</member> +<member +>La configuración se hace a través del menú del panel. Puede configurar los colores y su dirección aquí.</member> +<member +>No se guarda el volumen de forma automática. Si desea guardar los volúmenes cuando salga para una posterior restauración, debe iniciar KMix a partir del menú K.</member> +</simplelist> + +</para> +</chapter> + + +<chapter id="advanced-kmix"> +<title +>Características avanzadas de KMix</title> + + + +<warning +><para +>Este capítulo describe las funcionalidades de &kmix; que están basadas en las experiencias de los usuarios. La mayor parte de los usuarios jamás necesitarán esta funcionalidad, por eso puede saltarse este capítulo sin problemas.</para +></warning> + + +<sect1 id="dcop-overview"> +<title +>El interfaz DCOP</title> + +<para +>Algunas veces desea hacer cosas especializadas. Cosas como controlar el mezclador desde otra aplicación o silenciar el dispositivo maestro todos los días a las 10pm. &kmix; tiene una interfaz DCOP que le permite hacer esto con un mínimo trabajo. Puede iniciar un intérprete y teclear <guilabel +>dcop kmix</guilabel +> para comenzar a explorar la interfaz DCOP de &kmix;. Los elementos específicos de las interfaces de &kmix; son:</para> + +<variablelist> +<varlistentry> +<term +><guilabel +>Mixer0</guilabel +></term> +<listitem +><para +>Permite manipular el primer mezclador. Puede configurar los niveles de volumen, silenciar el dispositivo, cambiar el balance, recuperar el nombre del mezclador y mucho más. Teclee <guilabel +>dcop kmix Mixer0</guilabel +> si desea explorar todas sus características. Existen más entradas como <guilabel +>Mixer1</guilabel +> en el caso de que haya varias tarjetas de sonido instaladas.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>kmix-mainwindow#1</guilabel +></term> +<listitem +><para +>La ventana del GUI se puede controlar con esta orden. Puede ocultar y mostrar la ventana, redimensionarla y mucho más. Teclee <guilabel +>dcop kmix kmix-mainwindow#1</guilabel +> si desea explorar todas las características.</para +></listitem> +</varlistentry> +</variablelist> + +</sect1> + + + + + +<sect1 id="dcop-examples"> +<title +>Ejemplo DCOP</title> + +<variablelist> +<varlistentry> +<term +><guilabel +>dcop kmix kmix-mainwindow#1 hide</guilabel +></term> +<listitem +><para +>Oculta la ventana principal del GUI. Utilice <guilabel +>dcop kmix kmix-mainwindow#1 show</guilabel +> o el icono empotrado para mostrarla otra vez.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>dcop kmix kmix-mainwindow#1 resize 1 1</guilabel +></term> +<listitem +><para +>Redimensiona la ventana del GUI al tamaño más pequeño posible. En este tamaño deben caber todos los deslizadores (y otros elementos del GUI).</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>dcop kmix Mixer0 mixerName</guilabel +></term> +<listitem +><para +>Indica el nombre del primer mezclador, por ejemplo <guilabel +>Sound Fusion CS46xx</guilabel +></para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>dcop kmix Mixer1 setVolume 0 10</guilabel +></term> +<listitem +><para +>Configura el volumen del segundo mezclador, dispositivo 0 al 10 por ciento. El dispositivo 0 suele ser el dispositivo maestro, pero no siempre. Si desea silenciar el (primer) dispositivo maestro en su segunda tarjeta de sonido, puede utilizar <guilabel +>dcop kmix Mixer1 setMasterVolume 0</guilabel +></para +></listitem> +</varlistentry> +</variablelist> + +<para +>Puede ejecutar directamente estas órdenes desde un intérprete que inicie dentro de KDE. Si necesita ejecutar órdenes dcop desde otro sitio, por ejemplo, desde un script crontab, necesitará definir la variable de entorno <guilabel +>DCOPSERVER</guilabel +> (como puede ver en la primera línea de su archivo ~/.DCOPserver_hostname_:0), por ejemplo: </para> + <!-- Don't know a better way to format code - esken --> +<simplelist> +<member +>#!/bin/sh</member> +<member +>DCOPSERVER=`cat /home/usuario/.DCOPserver_sunombredeservidor_:0 | grep local`</member> +<member +>export DCOPSERVER</member> +<member +>dcop kmix Mixer0 setMasterVolume 0</member> +</simplelist> + +</sect1> + +<sect1 id="tips-and-tricks"> +<title +>Consejos y trucos</title> + +<variablelist> +<varlistentry> +<term +><guilabel +>Utilizar los controladores ALSA y OSS a la vez</guilabel +></term> +<listitem> +<para +>KMix en Linux utiliza el controlador ALSA o el controlador OSS, pero no ambos. Si realmente necesita utilizar ambos controladores a la vez (una situación muy extraña), puede hacer lo siguiente: Salga de KMix y añada la siguiente línea a su archivo <guilabel +>kmixrc</guilabel +> en la sección de configuración global.</para> +<para +><guilabel +>MultiDriver=true</guilabel +></para> +<para +>Inice KMix nuevamente. Si pulsa en <guilabel +>Ayuda->Información del hardware</guilabel +> debería ver «<guilabel +>Controladores de sonido utilizados: ALSA 0.9 + OSS</guilabel +>» y «<guilabel +>Activado el modo experimental de controladores múltiples</guilabel +>»</para> +<warning +><para +>Aviso: Probablemente verá todos los mezcladores duplicados.</para +><para +>No existe soporte para este tipo de configuración.</para +></warning> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +</chapter> + +<chapter id="credits"> +<title +>Créditos y licencia</title> + +<para +>Desarrollador principal:</para> + +<itemizedlist> +<listitem +><para +>Derechos de autor. 1996-2000. Christian Esken.</para +></listitem> +<listitem +><para +>Derechos de autor. 2000-2003. Christian Esken y Stefan Schimanski.</para +></listitem> +<listitem +><para +>Derechos de autor. 2003-2005. Christian Esken y Helio Chissini de Castro.</para +></listitem> +</itemizedlist> + +<para +>Colaboradores:</para> + +<itemizedlist> +<listitem +><para +>Christian Esken <email +>[email protected]</email +>.</para +></listitem> +<listitem +><para +>Stefan Schimanski <email +>[email protected]</email +>.</para +></listitem> +<listitem +><para +>Paul Kendall <email +>[email protected]</email +> - Portado a SGI.</para +></listitem> +<listitem +><para +>Sebestyen Zoltan <email +>[email protected]</email +> - Arreglos para FreeBSD.</para +></listitem> +<listitem +><para +>Faraut Jean-Louis <email +>[email protected]</email +> - Arreglos para Solaris.</para +></listitem> +<listitem +><para +>Nick Lopez <email +>[email protected]</email +> - Portado a ALSA.</para +></listitem> +<listitem +><para +>Helge Deller <email +>[email protected]</email +> - Portado a HP-UX.</para +></listitem> +<listitem +><para +>Lennart Augustsson <email +>[email protected]</email +> - Arreglos para *BSD.</para +></listitem> +</itemizedlist> + +<para +>Derechos de autor de la documentación. 2000. Matt Johnston <email +>[email protected]</email +>.</para> + +<para +>Actualizado en 2003 para &kmix; V1.91 por Christian Esken <email +>[email protected]</email +>.</para> + +<para +>Actualizado en 2005 par &kmix; V2.2 por Christian Esken <email +>[email protected]</email +>.</para> + + +<para +>Basada en la documentación de Christian Esken <email +>[email protected]</email +>.</para> +<para +>Traducido por Salvador Gimeno Zanón<email +>[email protected]</email +>, Miguel Revilla Rodríguez <email +>[email protected]</email +> y Santiago Fernández Sancho <email +>[email protected]</email +>.</para +> +&underFDL; &underGPL; </chapter> + +<appendix id="installation"> +<title +>Instalación</title> + +<sect1 id="getting-kmix"> +<title +>Como obtener &kmix;</title> +&install.intro.documentation; </sect1> + +<sect1 id="requirements"> +<title +>Requerimientos</title> + +<para +>Obviamente, &kmix; sólo es útil si tiene una tarjeta de sonido. &kmix; soporta un elevado número de plataformas y controladores de sonido:</para> + +<itemizedlist> +<listitem +><para +>Todas las plataformas que utilicen Open Sound System. Concretamente, se ha probado en &Linux;, FreeBSD, NetBSD y BSDI.</para +></listitem> +<listitem +><para +>Máquinas basadas en &Solaris;.</para +></listitem> +<listitem +><para +>Máquinas basadas en &IRIX;.</para +></listitem> +<listitem +><para +>El controlador de sonido ALSA.</para +></listitem> +<listitem +><para +>Máquinas basadas en &HP-UX;.</para +></listitem> +</itemizedlist> + +</sect1> + +<sect1 id="compilation"> +<title +>Compilación e instalación</title> +&install.compile.documentation; </sect1> + +</appendix> + +</book> +<!-- +Local Variables: +mode: sgml +sgml-omittag: nil +sgml-shorttag: t +End: +--> + diff --git a/tde-i18n-es/docs/tdemultimedia/kmix/kmix-channel-playback.png b/tde-i18n-es/docs/tdemultimedia/kmix/kmix-channel-playback.png Binary files differnew file mode 100644 index 00000000000..2afcafaf13d --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kmix/kmix-channel-playback.png diff --git a/tde-i18n-es/docs/tdemultimedia/kmix/kmix-channel-record.png b/tde-i18n-es/docs/tdemultimedia/kmix/kmix-channel-record.png Binary files differnew file mode 100644 index 00000000000..4cf96be102a --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kmix/kmix-channel-record.png diff --git a/tde-i18n-es/docs/tdemultimedia/kmix/kmix-window.png b/tde-i18n-es/docs/tdemultimedia/kmix/kmix-window.png Binary files differnew file mode 100644 index 00000000000..5b843332614 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kmix/kmix-window.png diff --git a/tde-i18n-es/docs/tdemultimedia/krec/Makefile.am b/tde-i18n-es/docs/tdemultimedia/krec/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/krec/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/krec/Makefile.in b/tde-i18n-es/docs/tdemultimedia/krec/Makefile.in new file mode 100644 index 00000000000..c68d27f7f40 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/krec/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia/krec +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/krec/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/krec/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/krec/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/krec/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/krec/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=krec-keramik.png index.docbook krec-configuration.png index.cache.bz2 Makefile.in krec-new_file_properties.png Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) krec-configuration.png index.docbook krec-keramik.png krec-new_file_properties.png + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec + @for base in krec-configuration.png index.docbook krec-keramik.png krec-new_file_properties.png ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec/$$base ;\ + done + +uninstall-nls: + for base in krec-configuration.png index.docbook krec-keramik.png krec-new_file_properties.png ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in krec-configuration.png index.docbook krec-keramik.png krec-new_file_properties.png ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/krec/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/krec/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/krec/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/krec/index.cache.bz2 b/tde-i18n-es/docs/tdemultimedia/krec/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..980760d0020 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/krec/index.cache.bz2 diff --git a/tde-i18n-es/docs/tdemultimedia/krec/index.docbook b/tde-i18n-es/docs/tdemultimedia/krec/index.docbook new file mode 100644 index 00000000000..86c00aa4787 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/krec/index.docbook @@ -0,0 +1,655 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&krec;"> + <!ENTITY package "tdemultimedia"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % Spanish "INCLUDE"> +]> + +<book lang="&language;"> +<bookinfo> +<title +>El manual de &krec;</title> + +<authorgroup> +<author +><firstname +>Arnold</firstname +> <surname +>Krille</surname +> <affiliation +> <address +><email +>[email protected]</email +></address> +</affiliation> +</author> +</authorgroup> + +<othercredit role="translator" +> <firstname +>Pedro</firstname +><surname +>Suárez Casal</surname +><affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +></othercredit +> <othercredit role="translator" +> <firstname +>Santiago</firstname +><surname +>Fernández Sancho</surname +><affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +></othercredit +> + +<copyright> +<year +>2002</year> +<year +>2003</year> +<year +>2004</year> +<holder +>Arnold Krille</holder> +</copyright> +<legalnotice +>&FDLNotice;</legalnotice> + +<date +>2004-03-01</date> +<releaseinfo +>0.5.1</releaseinfo> + +<!-- + vim: tw=80 et sw=2 ts=2 +--> +<abstract> +<para +>&krec; es una aplicación de grabación para &arts;. Puede utilizarse para grabar cualquier sonido que llegue a su ordenador. Tiene implementados algunos efectos y también tiene la posibilidad de reproducir lo grabado. </para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>tdemultimedia</keyword> +<keyword +>KRec</keyword> +<keyword +>aRts</keyword> +<keyword +>grabando</keyword> +<keyword +>entorno gráfico</keyword> +</keywordset> + +</bookinfo> + +<!-- + TODO: (ordered by priority) + - Explained: + - Mainwidget + - more on exports + + Quality settings + + possible more examples for the compressors + + Configuration + + Recording from line-in +--> + +<chapter id="introduction"> +<title +>Introducción</title> + +<sect1 id="why-krec"> +<title +>Por qué escribí &krec;</title> + +<para +>Después de trabajar con &arts; durante algún tiempo me dí cuenta de que no existía ninguna aplicación de grabación excepto la herramienta de línea de órdenes <command +>artsrec</command +>. Tenía que grabar una emisión de radio que algunos amigos míos querían que mezclase y masterizase, y deseaba utilizar &Linux; para la grabación. Por ello, comencé a escribir &krec;. </para> +</sect1> + +<sect1 id="what-krec-does"> +<title +>¿Qué hace &krec;?</title> + +<para +>La función de &krec; es muy simple. Se conecta al servidor de &arts; y graba lo que se dirige a él en un archivo. Estos archivos están en un formato especial de &krec; pero es posible exportarlos a archivos wav, ogg y mp3. </para> +<para +>Pero &krec; tiene muchas más funcionalidades. Puede hacer múltiples grabaciones en un archivo incluso con la funcionalidad de solapamiento. </para> +</sect1> + +<sect1 id="bugs_and_info"> +<title +>Información adicional</title> +&reporting.bugs; &updating.documentation; </sect1> + +</chapter> + +<chapter id="first_glance"> +<title +>Un primer vistazo a &krec;</title> + +<!--<para> +Let`s take a first glance at &krec; right after startup and I will try to give +some explainations what the different items are. +</para +>--> + +<screenshot> +<screeninfo +>Ésta es una captura de &krec;</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="krec-keramik.png" format="PNG"/> +</imageobject> +<textobject> +<phrase +>Captura de pantalla de &krec; justo después de iniciarse.</phrase> +</textobject> +</mediaobject> +</screenshot> + +<sect1 id="first_glance_items"> +<title +>La ventana principal de &krec; en detalle</title> + +<itemizedlist> +<listitem +><para +>En la parte superior se encuentra la <emphasis +>barra de menú</emphasis +> y dos <emphasis +>barras de herramientas</emphasis +>. La primera barra de herramientas contiene algunos elementos del menú <guimenu +>Archivo</guimenu +>, la segunda incorpora importantes funciones del menú <guimenu +>Reproducir</guimenu +>.</para +></listitem> +<listitem +><para +>El centro tiene las partes importantes: En la parte izquierda se muestra el volumen de grabación de la señal de audio que se está grabando/reproduciendo con un control de volumen para ajustar el nivel.</para +></listitem> +<listitem +><para +>La parte principal muestra el archivo, formado por cuatro partes. La parte superior es el nombre del archivo, la segunda muestra la parte grabada en orden cronológico y con el tamaño a escala. También permite desactivar partes a través del menú contextual. Debajo se encuentra la línea temporal en la que podrá ver y (pulsando) mover la posición al lugar que desee. La parte inferior de este bloque tiene dos elementos que muestran la posición y el tamaño en el formato de tiempo que desee.</para +></listitem> +<listitem +><para +>En la parte de abajo del todo existe otra barra de herramientas que contiene un compresor para la edición dinámica de su grabación y una barra de estado que muestra todo tipo de mensajes.</para +></listitem> +</itemizedlist> + +<para +>Véa el <xref linkend="krec_explained"/> para obtener más información. </para> + +</sect1> +</chapter> + +<chapter id="recording_howtos"> +<title +>Cómo grabar</title> + +<para +>Este capítulo contiene tutoriales paso a paso para mostrarle cuál es la forma de hacer buenas grabaciones con &krec;. </para> + +<sect1 id="recording_from_music"> +<title +>Grabando música interna</title> + +<orderedlist> +<listitem +><para +>Lo primero que vamos a hacer es grabar desde nuestro reproductor favorito de audio de &kde;. Por tanto, inicie &noatun;, &juk; o &kaboodle;. Podemos utilizar otros reproductores que no utilizan &arts; para su salida, y en ese caso la grabación es un poco más compleja y se escapa del ámbito de esta sección. Por tanto, seleccione una canción para reproducir en uno de estos tres reproductores (todos se incluyen con tdemultimedia, donde también se encuentra &krec;). </para +></listitem> +<listitem +><para +>En &krec; seleccione el <guimenuitem +>Gestor de audio</guimenuitem +> desde el menú <guimenu +>Herramientas</guimenu +>. Podrá ver al menos una línea para &krec;::In y otra para &krec;::Out. La segunda columna indica el tipo de elemento que es, y puede ser <emphasis +>grabar</emphasis +> o <emphasis +>reproducir</emphasis +>. La última columna indica de dónde proviene el sonido para este elemento. En estos momentos el elemento &krec;::In está (¿debería estarlo?) conectado a <emphasis +>in_soundcard</emphasis +> que es el canal de entrada de su tarjeta de sonido, pero como lo que queremos es grabar del reproductor y el reproductor reproduce en <emphasis +>out_soundcard</emphasis +>, pulsaremos el elemento &krec;::In para cambiarlo a otra fuente. Seleccione <emphasis +>out_soundcard</emphasis +> en la ventana que aparecerá y pulse <guibutton +>Aceptar</guibutton +>. Para aprender más sobre el gestor de audio vea <xref linkend="audio_manager"/>. </para +></listitem> +<listitem +><para +>Ahora el nivel de grabación de &krec; debería oscilar arriba y abajo de forma relacionada con la música que está oyendo (si no oye nada no debería ver nada en el nivel de grabación). </para +></listitem> +<listitem +><para +>Ahora abra un nuevo archivo pulsando en el primer elemento de la barra de herramientas o seleccionando <guimenuitem +>Nuevo</guimenuitem +> del menú <guimenu +>Archivo</guimenu +>. Acepte la configuración de calidad, por el momento, o vea <xref linkend="quality"/> para obtener más información. </para +></listitem> +<listitem +><para +>Seleccione <guimenuitem +>Grabar</guimenuitem +> del menú <guimenu +>Reproducir</guimenu +> o pulse la tecla <keycap +>R</keycap +>. Después de que haya finalizado seleccione <guimenuitem +>Parar</guimenuitem +> del mismo menú o utilice la tecla <keycap +>S</keycap +>. </para +></listitem> +<listitem +><para +>Guarde el trabajo de la forma habitual. Si está interesado en exportarlo vea <xref linkend="exporting"/>.</para +></listitem> +</orderedlist> + +<para +>¡Ya está! Ahora podrá oír su grabación o exportarla (no olvide ir al principio). </para> + +</sect1> + +<sect1 id="recording_from_line_in"> +<title +>Grabar desde Line-In o Mic-In</title> + +<para +>Grabar de fuentes externas es un poco más complicado ya que involucra muchas aplicaciones y dispositivos de hardware diferentes. Estoy asumiendo que su hardware está instalado correctamente, y que los controladores están funcionando y deberían ser capaces de controlar el volumen del hardware a través de &kmix;. En &kmix; también puede seleccionar canales para la grabación, lo que básicamente significa que su señal se envía al convertidor analógico-digital (ADC) y puede ser leído por el controlador y las aplicaciones. Esto funciona de forma diferente en la mayor parte de las tarjetas de sonido y por esto debe probar un poco los controladores para estar seguro... </para> +<para +>La segunda cosa importante es que &arts; tiene que estar ejecutándose en modo full-duplex, lo que significa que &arts; se está leyendo de la tarjeta de sonido y se está escribiendo a la vez. Tiene que iniciar &kcontrol; y editar la configuración del sistema de sonido (o pulsar Alt+F2 y teclear <command +>kcmshell arts</command +>). En la segunda pestaña debe asegurarse de que esté marcado full-duplex, pulsando <guibutton +>Aplicar</guibutton +> al reiniciar &arts;, lo que significa que tiene que reiniciar &krec; también. </para> +<para +>Después de estos pasos preliminares el nivel de grabación (vea <xref linkend="vu-meter"/> para obtener más información) de &krec; debería fluctuar de acuerdo con la señal de audio que esté grabando y que ha seleccionado para grabar en &kmix;. Ajustar el volumen con los valores correctos es muy importante para que las grabaciones puedan utilizarse. Si la amplificación propia de la tarjeta de sonido es muy alta producirá ruido digital, porque el <glossterm +>ADC</glossterm +> únicamente puede crear valores entre un mínimo y un máximo y si la señal es demasiado alta se cortará digitalmente, lo que arruinará la grabación. Por otra parte, si el volumen es demasiado bajo en su grabación obtendrá ruido y silbidos procedentes del hardware de audio. Por tanto, debería elegir una forma intermedia de forma que la señal no sea ni demasiado alta ni demasiado baja. La mejor opción es siempre dejar algo de margen. </para> +<para +>Ahora podrá ajustar el nivel por segunda vez en &krec; que es un software de amplificación. Ésta es la mejor forma de utilizar el compresor para ecualizar un poco las diferencias entre las partes de silencio y de ruido. Puede encontrar más información sobre el uso del compresor en <xref linkend="compressor"/>. </para> +<para +>Los pasos restantes son los mismos que en <xref linkend="recording_from_music"/> desde el paso cuarto en adelante. Por tanto, si comienza con esta sección debería saber como seguir. </para> + +</sect1> +</chapter> + +<chapter id="krec_explained"> +<title +>&krec; explicado</title> + +<para +>Este capítulo describe algunas partes y funciones de &krec; con más detalle y proporciona algunos consejos de uso. Los elementos se ordenan alfabéticamente, no por importancia. </para> + +<sect1 id="audio_manager"> +<title +>El gestor de audio</title> +<para +>El gestor de audio se utiliza para conectar la salida de diferentes aplicaciones a buses nuevos o existentes. Un bus es una especie de distribuidor de señal virtual. Cada elemento de reproducción o grabación se puede conectar a un bus y al mismo tiempo varios elementos se pueden conectar a un bus. Ejemplo: La salida de &noatun; se puede conectar a la salida principal <emphasis +>o</emphasis +> a cualquier otro bus. Pero, varios &noatun;s pueden conectarse a la salida principal. </para> + +<sect2 id="audio_manager_mw"> +<title +>La ventana principal del gestor de audio</title> +<para +>Contiene tres columnas: </para> +<orderedlist> +<listitem +><para +>El nombre del elemento que está reproduciendo o grabando sonido.</para +></listitem> +<listitem +><para +>El tipo de elemento, que puede ser <emphasis +>reproducir</emphasis +> o <emphasis +>grabar</emphasis +>.</para +></listitem> +<listitem +><para +>El bus al que el elemento está conectado.</para +></listitem> +</orderedlist> +<para +>Pulse en un elemento y aparecerá un diálogo en el que podrá seleccionar el bus deseado. </para> +</sect2> +<sect2 id="audio_manager_dialog"> +<title +>El diálogo de buses</title> +<para +>La parte principal muestra todos los buses disponibles. Seleccione uno para enviar o tomar el audio a partir de él. Debajo puede crear nuevos buses para conectar elementos a ellos. </para> +<tip +><para +>Para grabar con el reproductor propio de &arts; y escuchar lo que está grabando cree un nuevo bus (<emphasis +>prueba</emphasis +> por ejemplo), conecte su reproductor a él (ahora no oirá nada), conecte &krec;::In al nuevo bus también y actívelo en <guimenuitem +>Reproducción simultánea</guimenuitem +>. </para +></tip> +</sect2> + +</sect1> + +<sect1 id="compressor"> +<title +>El compresor</title> +<para +>Si está grabando con un micrófono debe tener en cuenta que el nivel algunas veces está muy alto y otras demasiado bajo, especialmente cuando se canta o se habla. Para corregir esto puede utilizar el compresor. Simplemente reduce todo el sonido hasta que está dentro de un determinado <emphasis +>umbral</emphasis +> dado por una <emphasis +>frecuencia</emphasis +>. Tenga en cuenta que el umbral es logarítmico, una configuración media es siempre relativamente baja pero es mucho más utilizable de esta forma. Otra nota: la frecuencia se encuentra en su valor máximo cuando está en el lado izquierdo, el extremo derecho significa que no hay compresión. Este método reduce el ruido existente en el potenciómetro de <emphasis +>salida</emphasis +> para expandir (o reducir) el sonido. <emphasis +>ataque</emphasis +> y <emphasis +>lanzamiento</emphasis +> le permiten controlar el tiempo tras el cual el compresor reacciona (el tiempo transcurrido después de que la primera entrada sobrepasa el umbral) y el tiempo que tarda en reaccionar el compresor después de que se pasa el límite inferior del umbral. </para> +<tip +><para +>Pruébelo mientras esté hablando por el micrófono con <guimenuitem +>Reproducción simultánea</guimenuitem +> activada y podrá escuchar la diferencia entre el original y la versión comprimida.</para +></tip> +<sect2 id="compressor_tips"> +<title +>Consejos para el uso del compresor</title> +<para +>Estos son <emphasis +>solo</emphasis +> consejos. Al final lo único que importa es cómo suena. Por tanto, si suena como desea, lo más probable es que la configuración sea la correcta. Y no dude en experimentar. </para> +<glosslist> +<glossentry +><glossterm +>Voz normal</glossterm +><glossdef +><para +>La mayor parte de las veces una voz que habla en la radio o en la televisión está muy comprimida. La razón es que el principal problema del habla es que el nivel es quizá el correcto al principio de la frase pero, probablemente, no al final. Además, los finales de palabra son menos altos que los comienzos. Esto hace imposible utilizar palabras habladas sin comprimirlas. Ejemplo de configuración: ataque bajo, lanzamiento medio, umbral bajo, frecuencia muy alta.</para +></glossdef +></glossentry> +<glossentry +><glossterm +>Masterizar 1: Limitar el nivel</glossterm +><glossdef +><para +>Para limitar solo los picos pero sin comprimirlo por completo utilice un umbral alto, una frecuencia alta, un ataque bajo y un lanzamiento medio-bajo. Esto protege su grabación de distorsiones digitales internas y, con el umbral un poco más bajo, elimina picos raros (y quizá no deseados) y proporciona más espacio para la señal que se está grabando.</para +></glossdef +></glossentry> +<glossentry +><glossterm +>Masterizar 2: Hacer un masterizado real</glossterm +><glossdef +><para +>Hacer un masterizado de música es difícil y depende totalmente de su oído y de la música que vaya a masterizar. Normalmente utilizará ataques rápidos con lo que obtendrá niveles reducidos suficientemente rápidos en los golpes del bombo. Por otro lado no deseará que la música suba y baje con los golpes del bombo, por tanto tendrá que seleccionar un lanzamiento alto. El factor de compresión no debería ser grande. Lo ideal sería enchufar un limitador después del compresor para librarse de los chasquidos y recortes.</para +></glossdef +></glossentry> +<glossentry +><glossterm +>Solos de instrumentos</glossterm +><glossdef +><para +>Estas configuraciones dependerán del instrumento. Mientras graba es aconsejable utilizar configuraciones que establezcan límites.</para +></glossdef +></glossentry> +<glossentry +><glossterm +>Consejo final</glossterm +><glossdef +><para +>Utilice sus oídos y practique mucho. ¡Todo está permitido si el sonido es correcto!</para +></glossdef +></glossentry> +<!--<glossentry +><glossterm +>Term</glossterm +><glossdef +><para +>Definition</para +></glossdef +></glossentry +>--> +</glosslist> +</sect2> +</sect1> + +<sect1 id="configuration"> +<title +>Configuración</title> +<para +>Hay dos páginas disponibles en la configuración. La primera se utiliza para configuraciones generales y se explica en esta sección. La segunda trata de las configuraciones de la calidad predeterminada y se describe en <xref linkend="quality"/>. </para> +<screenshot> +<screeninfo +>Configuración general</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="krec-configuration.png" format="PNG"/> +</imageobject> +<textobject> +<phrase +>Editando las configuraciones generales de &krec;.</phrase> +</textobject> +</mediaobject> +</screenshot> +<para +>La primera parte está constituída por la forma en que se muestran el tiempo y las posiciones. El estilo «Muestreos» muestra el número de muestras, el siguiente incluye de forma opcional horas, minutos, segundos y muestreos. El tercer estilo es el mismo que el segundo salvo que muestra los fotogramas en lugar de los muestreos. El cuarto estilo muestra el tamaño en megabytes y en kilobytes y es práctico para controlar el espacio en el disco. A la derecha de los estilos tendrá la oportunidad de seleccionar el número de fotogramas por segundo. </para> +<para +>La casilla inferior hace que el tiempo se muestre con más información e incluye la unidad. </para> +<para +>Si desea restablecer el consejo del día al inicio puede hacerlo con la siguiente casilla. El botón inferior permite mostrar aquellos mensajes en los que se marcó la opción «No mostrar otra vez», normalmente, los de las funciones de exportación. </para> +</sect1> + +<sect1 id="exporting"> +<title +>Exportar</title> +<blockquote> +<attribution +>Un admirador anónimo de &krec;</attribution> +<para +>Su aplicación está muy bien, la utilizo todo el día, pero ¡falta exportación a wav/mp3/ogg!</para> +</blockquote> +<para +>Aquí lo tenemos: la funcionalidad definitiva de exportación para &krec;. La capacidad de exportación variará en función de las bibliotecas que se encuentren en tiempo de compilación, las que están actualmente disponibles se describen en las siguientes secciones. </para> +<para +>La selección de la extensión que desea se realiza a través del nombre del archivo: Seleccione <guimenuitem +>Exportar...</guimenuitem +> en <guimenu +>Archivo</guimenu +>, establezca el nombre para el archivo que vaya a exportar y la extensión de exportación que se utilizará se determinará a partir de su extensión. La lista de extensiones del diálogo muestra qué extensiones de exportación están disponibles. </para> +<para +>Para entender el uso general de exportación: Técnicamente exportar funciona de manera similar a la reproducción. Esto significa que tendrá que ir a la posición en la que desee iniciar la exportación a partir de la posición actual y se desplazará hacia delante. Esto significa que en el futuro será posible exportar la selección que desee con solo reproducirla. </para> +<sect2 id="export_wave"> +<title +>Exportar a onda (*.wav)</title> +<para +>La extensión de exportación más sencilla. Exporta su archivo &krec; a un archivo de onda con la calidad que esté configurada para el archivo completo. </para> +</sect2> +<sect2 id="export_mp3"> +<title +>Exportar a mp3 (*.mp3)</title> +<para +>Quizá la exportación más utilizada. Exporta su archivo &krec; a un archivo mp3. </para> +<important +><para +>La calidad se configura en la sección de &kcontrol; «Sonidos y multimedia» / «CDs audio», y la utiliza &krec; a partir de esta versión, ya que utiliza las mismas bibliotecas que la funcionalidad audiocd:/. </para +></important> +</sect2> +<sect2 id="export_ogg"> +<title +>Exportar a ogg (*.ogg)</title> +<para +>Exporta su archivo &krec; a un archivo ogg. </para> +<important +><para +>La calidad se configura en la sección de &kcontrol; «Sonidos y multimedia» / «CDs audio», y la utiliza &krec; a partir de esta versión, ya que utiliza las mismas bibliotecas que la funcionalidad audiocd:/. </para +></important> +</sect2> +</sect1> + +<sect1 id="play_thru"> +<title +>Reproducción simultánea</title> +<para +>Para aquellos que quieran escuchar lo que están grabando es muy práctica la opción <guimenuitem +>Reproducción simultánea</guimenuitem +> en el menú <guimenu +>Reproducción</guimenu +>. Le aconsejo que utilice esta opción siempre que pueda, especialmente si hace cosas como utilizar el compresor y otros efectos y desea controlar lo que se está grabando. </para> +<caution +><para +>Asegúrese de no crear un bucle de retroalimentación mientras grabe a partir de <emphasis +>out_soundcard</emphasis +> y active <guimenuitem +>Reproducción simultánea</guimenuitem +>. Un bloque como éste es demasiado para el pobre &arts; y ralentizará en exceso su sistema. En este caso debería matar a &arts;... </para +><para +>El motivo es que &arts; calcula la interconexión de audio para cada muestra (en realidad bloques de muestras) y si la muestra se construye a través de bucles del propio &arts;, éste tiene que hacer más cálculos de los que puede. </para +></caution> +</sect1> + +<sect1 id="quality"> +<title +>Configuraciones de la calidad</title> +<screenshot> +<screeninfo +>Las propiedades para los nuevos archivos</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="krec-new_file_properties.png" format="PNG"/> +</imageobject> +<textobject> +<phrase +>Éste es el diálogo para seleccionar las propiedades de los archivos nuevos.</phrase> +</textobject> +</mediaobject> +</screenshot> +<para +>Cuando cree un nuevo archivo &krec; se mostrará este diálogo que le permitirá seleccionar algunas configuraciones relacionadas con la calidad de la grabación. Todos estos parámetros tienen impacto en el tamaño. </para> +<para +>La <emphasis +>frecuencia de muestreo</emphasis +> es el ratio que le dice al sistema de audio cuántas muestras debe tomar cada segundo y se mide en hercios (Hz) o en kilohercios (kHz). El valor más alto de este ratio es la frecuencia de grabación más alta. Como se necesitan al menos dos muestras para reconstruir una onda «sinusoidal», el valor máximo de la frecuencia es la mitad de la frecuencia de muestreo. El oído humano es capaz de escuchar tonos que están por encima de 10 kHz y de 20 kHz, dependiendo de la edad. Los niños pequeños pueden llegar hasta los 20 kHz mientras que los adultos tienen su máximo en torno a los 15 kHz y los ancianos por debajo de los 10 kHz. Pero sin llegar a oír las frecuencias más altas, éstas influyen en lo que se escucha y se siente (se corresponden con la psycoacústica). </para> +<para +>El número de canales se puede elegir libremente dependiendo de la tarea de grabación. Si está utilizando un micrófono mono sin aplicar efectos estéreo puede seleccionar «Mono» sin que se pierdan datos. </para> +<para +>La última parte es el número de bits utilizados para una muestra, los valores posibles son 8 y 16 bits. Cuanto mayor es el número de bits, más son los valores disponibles entre el máximo y el mínimo de la señal. 8 bits es un byte, de ahí que puede referirse a uno o dos bytes de muestreo. </para> +<para +>El espacio necesario para la grabación se puede calcular de una forma muy sencilla: Es la frecuencia de muestreo multiplicada por el número de canales multiplicado por el número de bytes por muestra y por el número de segundos que se desee grabar. </para> +<example +><title +>Calcular el tamaño de un minuto con calidad CD</title +><para +>Para un minuto (60 segundos) de audio en calidad CD (44.100 Hz, 16 bits, estéreo) el espacio necesario es: 44.100 * 2 *2 *60 = 1.058.400 bytes = 10.335,938 kilobytes. Ésto es alrededor de 10 Mbytes de datos por minuto. </para +></example> +<tip +><para +>¡Utilice siempre la mayor calidad que necesite! Reducir la calidad después es siempre posible, pero aumentarla no, puesto que para ello se necesitarían datos adicionales. </para +></tip> +<para +>El último elemento sobre el botón es una casilla para utilizar los valores introducidos de forma predeterminada para los nuevos valores sin mostrar el diálogo nuevamente. </para> +<para +>Como el diálogo está también disponible en la configuración para seleccionar las configuraciones estándares, la casilla «Utilizar los valores predeterminados...» también estará accesible para que aparezca el cuadro de diálogo para cada archivo. </para> +</sect1> + +<sect1 id="vu-meter"> +<title +>Nivel de grabación</title> +<para +>Como probablemente el compresor no sea necesario para cada una de las tareas, el nivel de grabación con su control de volumen integrado es la parte indispensable de la grabación con &krec;. Muestra el nivel actual que se está grabando el archivo después de utilizar efectos y después de definir el volumen con el control. Si se encuentra en la zona roja oscura la mayor parte del tiempo la grabación probablemente se cortará y no sonará bien. Si fluctúa en torno al 2% probablemente no oirá nada en la grabación. </para> +<tip +><para +>Para obtener una buena grabación el nivel debería estar entre -12 dB y 0 dB la mayor parte del tiempo. </para +></tip> +<tip +><para +>Utilice el compresor para editar la dinámica de sus grabaciones. Vea <xref linkend="compressor"/> para obtener más información. </para +></tip> +</sect1> + +</chapter> + + + +<chapter id="credits"> +<title +>Créditos y licencia</title> +<para +>&krec; </para> +<para +>Derechos de autor del programa. 2002-2003. Arnold Krille<email +>[email protected]</email +>. </para> +<para +>Derechos de autor de la documentación. 2002-2004. Arnold Krille <email +>[email protected]</email +>. </para> +<para +>Traducido por Pedro Suárez Casal <email +>[email protected]</email +> y Santiago Fernández Sancho <email +>[email protected]</email +>.</para +> +&underFDL; &underGPL; </chapter> + +<appendix id="installation"> +<title +>Instalación</title> + +<sect1 id="getting-krec"> +<title +>Cómo obtener &krec;</title> +&install.intro.documentation; </sect1> + +<sect1 id="requirements"> +<title +>Requerimientos</title> +<para +>Para utilizar correctamente &krec; 0.5.1, necesitará &kde; 3.3. </para> +<para +>&krec; debe estar dentro de su paquete tdemultimedia. Como este paquete necesita que &kde; y &arts; se estén ejecutando, todo debería estar preparado correctamente. </para> +</sect1> + +<sect1 id="compilation"> +<title +>Compilación e instalación</title> +&install.compile.documentation; </sect1> + +</appendix> + +&documentation.index; +</book> + +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +End: +--> diff --git a/tde-i18n-es/docs/tdemultimedia/krec/krec-configuration.png b/tde-i18n-es/docs/tdemultimedia/krec/krec-configuration.png Binary files differnew file mode 100644 index 00000000000..452b4a8f1d7 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/krec/krec-configuration.png diff --git a/tde-i18n-es/docs/tdemultimedia/krec/krec-keramik.png b/tde-i18n-es/docs/tdemultimedia/krec/krec-keramik.png Binary files differnew file mode 100644 index 00000000000..63ec3b9d8a8 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/krec/krec-keramik.png diff --git a/tde-i18n-es/docs/tdemultimedia/krec/krec-new_file_properties.png b/tde-i18n-es/docs/tdemultimedia/krec/krec-new_file_properties.png Binary files differnew file mode 100644 index 00000000000..d9979b9224e --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/krec/krec-new_file_properties.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/Makefile.am b/tde-i18n-es/docs/tdemultimedia/kscd/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/Makefile.in b/tde-i18n-es/docs/tdemultimedia/kscd/Makefile.in new file mode 100644 index 00000000000..78ed9972a35 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia/kscd +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kscd/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/kscd/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kscd/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kscd/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kscd/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=kscd18.png index.docbook kscd6.png kscd13.png kscd2.png kscd14.png kscdannounc.png index.cache.bz2 kscd5.png kscd12.png kscd16.png kscd11.png kscd19.png kscd9.png kscd3.png kscd.png Makefile.in Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) kscd13.png kscd6.png kscd18.png kscd.png kscd3.png kscd9.png index.docbook kscd5.png kscd14.png kscd11.png kscd2.png kscd16.png kscd19.png kscdannounc.png kscd12.png + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd + @for base in kscd13.png kscd6.png kscd18.png kscd.png kscd3.png kscd9.png index.docbook kscd5.png kscd14.png kscd11.png kscd2.png kscd16.png kscd19.png kscdannounc.png kscd12.png ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd/$$base ;\ + done + +uninstall-nls: + for base in kscd13.png kscd6.png kscd18.png kscd.png kscd3.png kscd9.png index.docbook kscd5.png kscd14.png kscd11.png kscd2.png kscd16.png kscd19.png kscdannounc.png kscd12.png ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kscd/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in kscd13.png kscd6.png kscd18.png kscd.png kscd3.png kscd9.png index.docbook kscd5.png kscd14.png kscd11.png kscd2.png kscd16.png kscd19.png kscdannounc.png kscd12.png ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/kscd/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kscd/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kscd/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/index.cache.bz2 b/tde-i18n-es/docs/tdemultimedia/kscd/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..3cfa088c6f1 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/index.cache.bz2 diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/index.docbook b/tde-i18n-es/docs/tdemultimedia/kscd/index.docbook new file mode 100644 index 00000000000..bbf68a47a9f --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/index.docbook @@ -0,0 +1,1662 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kscd;"> + <!ENTITY package "tdemultimedia"> + <!ENTITY % Spanish "INCLUDE" +> <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>El manual de &kscd;</title> + +<authorgroup> + +<author +><firstname +>Mike</firstname +> <surname +>McBride</surname +> <affiliation +><address +>&Mike.McBride.mail;</address +></affiliation> +</author> + +<author +><firstname +>Jonathan</firstname +> <surname +>Singer</surname +> <affiliation +><address +>&Jonathan.Singer.mail;</address +></affiliation> +</author> + +<author +><firstname +>David</firstname +> <surname +>White</surname +> <affiliation +><address +><email +>[email protected]</email +></address> +</affiliation> +</author> + +<othercredit role="developer" +><firstname +>Bernd</firstname +> <othername +>Johannes</othername +> <surname +>Wuebben</surname +> <affiliation +><address +>&Bernd.Johannes.Wuebben.mail;</address +></affiliation> +<contrib +>Desarrollador</contrib> +</othercredit> + +<othercredit role="developer" +><firstname +>Dirk</firstname +> <surname +>Forsterling</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation> +<contrib +>Desarrollador</contrib> +</othercredit> + +<othercredit role="developer" +><firstname +>Dirk</firstname +> <surname +>Foersterling</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation> +<contrib +>Desarrollador</contrib> +</othercredit> + +<othercredit role="reviewer" +><firstname +>Lauri</firstname +> <surname +>Watts</surname +> <affiliation +><address +>&Lauri.Watts.mail;</address +></affiliation> +<contrib +>Revisor</contrib> +</othercredit> +<othercredit role="translator" +><firstname +>Salvador</firstname +><surname +>Gimeno Zanón</surname +><affiliation +><address +><email +>[email protected]</email +></address +></affiliation +><contrib +>Traductor</contrib +></othercredit +> <othercredit role="translator" +> <firstname +>Miguel</firstname +> <surname +>Revilla Rodríguez</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +> </othercredit +> <othercredit role="translator" +> <firstname +>Santiago</firstname +> <surname +>Fernández Sancho</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +> </othercredit +> +</authorgroup> + +<copyright> +<year +>2000</year +><year +>2004</year> +<holder +>J Singer</holder> + +</copyright> +<copyright> + +<year +>2005-2006</year> +<holder +>Mike McBride</holder> +</copyright> +<legalnotice +>&FDLNotice;</legalnotice> + + +<date +>2005-12-22</date> +<releaseinfo +>1.5</releaseinfo> + +<abstract> +<para +>&kscd; es un pequeño y rápido reproductor de <abbrev +>&CD;</abbrev +>s, con soporte de <abbrev +>CDDB</abbrev +>, para las plataformas &UNIX;.</para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>tdemultimedia</keyword> +<keyword +>kscd</keyword> +<keyword +>música</keyword> +<keyword +>CD</keyword> +<keyword +>audio</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title +>Introducción</title> + +<para +>&kscd; es un rápido reproductor de &CD;s, con soporte de <abbrev +>CDDB</abbrev +>, para las plataformas UNIX. &kscd; son las siglas de «The KDE Project's small/simple &CD; player» (el pequeño/simple reproductor de &CD;s del proyecto KDE).</para> + +<para +><emphasis +>Nuevo:</emphasis +> el script incluido de Perl <filename +>workman2cddb.pl</filename +> para facilitar la migración de usuarios de Workman.</para> + +<para +>Espero que disfruten de este reproductor de &CD;s.</para> + +<para +>&Bernd.Johannes.Wuebben;</para> + +<para +>&Bernd.Johannes.Wuebben.mail;</para> + +<sect1 id="supported-platforms"> +<title +>Plataformas soportadas</title> + +<para +>&kscd; soporta, de forma explicita, las siguientes plataformas:</para> + +<itemizedlist> +<listitem +><para +>&Linux;</para +></listitem> +<listitem +><para +>FreeBSD.</para +></listitem> +<listitem +><para +>NetBSD.</para +></listitem> +<listitem +><para +>BSD386.</para +></listitem> +<listitem +><para +>Sun.</para +></listitem> +<listitem +><para +>&Solaris; (incluyendo soporte para <acronym +>cdda</acronym +>).</para +></listitem> +<listitem +><para +>&HP-UX;.</para +></listitem> +<listitem +><para +>&SGI; Irix (incluyendo soporte para <abbrev +>cdda</abbrev +>).</para +></listitem> +<listitem +><para +>Sony NEWS.</para +></listitem> +<listitem +><para +>OSF/1.</para +></listitem> +<listitem +><para +>Ultrix.</para +></listitem> +</itemizedlist> + +<para +>y debería compilarse en muchas otras plataformas con pequeñas modificaciones.</para> + +</sect1> + +</chapter> + +<chapter id="onscreen-fundamentals"> +<title +>Elementos principales de la pantalla</title> + +<sect1 id="basic-operation"> +<title +>Funciones básicas</title> + +<screenshot> +<screeninfo +>La interfaz de &kscd;</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="kscd.png" format="PNG"/></imageobject> +<textobject +><phrase +>La interfaz de &kscd;</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Esta es la ventana principal de &kscd;. Debería ver algo similar cuando arranque &kscd; Los controles de la ventana se explican abajo, sin ningún orden concreto.</para> + +<sect2 id="control-panel"> +<title +>El panel de control</title> + +<screenshot> +<screeninfo +>El panel de control</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd2.png" format="PNG"/></imageobject> +<textobject +><phrase +>El panel de control</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Este es el panel principal de control para &kscd;. La función de estos botones debería ser familiar para cualquiera que haya utilizado alguna vez un reproductor de &CD;s.</para> + +<para +>El botón superior en el diagrama superior, alterna entre la reproducción y la pausa del &CD;. El botón izquierdo de la segunda fila detiene la reproducción del &CD;. El botón derecho de la segunda fila expulsa el &CD;. Los dos botones de la tercera fila permiten que se reproduzca la pista siguiente (derecha) o anterior (izquierda). El botón izquierdo de la fila inferior activa o desactiva la reproducción aleatoria. El botón derecho de la fila inferior activa o desactiva la repetición, por tanto, se volverá a reproducir el &CD; nuevamente cuando haya finalizado con la última pista de audio.</para> +</sect2> + + +<sect2 id="status-display"> +<title +>El visor de estado</title> + +<screenshot> +<screeninfo +>El visor de estado</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd3.png" format="PNG"/></imageobject> +<textobject +><phrase +>El visor de estado</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Este es el visor de estado. Comenzando por arriba, de derecha a izquierda, podrá encontrar el visor de tiempo (mire abajo para encontrar una descripción de los distintos modos de visualización), el estado de la unidad de &CD-ROM;, la duración total del &CD; de audio, la configuración de volumen, y la pista actual, así como el número total de las mismas (act./tot.). Las dos líneas de texto muestran el artista y el título del &CD;, además del título de la pista, suponiendo que estos datos existan en la base de datos de &CD;s (<acronym +>CDDB</acronym +>) local o en red.</para> + +<para +>Este botón salta entre los distintos modos en los que se puede mostrar el tiempo. De forma predeterminada, &kscd; muestra el tiempo transcurrido de la pista actual, si el &CD; está en reproducción, ––:–– ó 00:00 si no se está reproduciendo el &CD;. Al pulsar este botón se alterna entre los modos de: tiempo restante de la pista, tiempo total transcurrido, y tiempo total restante.</para> +</sect2> + +<sect2 id="configuration-button"> +<title +>El botón de <guibutton +>configuración</guibutton +></title> + +<screenshot> +<screeninfo +>El botón de Extras</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd5.png" format="PNG"/></imageobject> +<textobject +><phrase +>El botón de Extras</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Este botón abre un menú con un número de opciones. Puede seleccionar el panel de configuración de &kscd; o configurar los accesos rápidos de teclado. Desde él podrá configurar &kscd; para que funcione en su máquina. Vea la sección acerca de <link linkend="configuring-kscd" +>la configuración de &kscd;</link +>, para obtener más detalles sobre cómo configurar &kscd;.</para> +<para +>El menú proporciona varias herramientas para ayudarle a buscar información sobre el artista en Internet. Puede encontrar información acerca de fechas de actuaciones, información sobre ventas, y otros datos pulsando en este botón y seleccionando la opción apropiada en el menú desplegable que aparece.</para> +<para +>Este menú también permite abrir este documento de ayuda, informar de fallos, aprender más sobre &kscd; y &kde; y salir de &kscd;.</para> +</sect2> + +<sect2 id="cddb-button"> +<title +>El botón <guibutton +>CDDB</guibutton +></title> + +<screenshot> +<screeninfo +>El botón <acronym +>CDDB</acronym +></screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd6.png" format="PNG"/></imageobject> +<textobject +><phrase +>El botón <acronym +>CDDB</acronym +></phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Este botón muestra el panel de edición de entradas de la <acronym +>CDDB</acronym +> (Base de Datos de Discos Compactos). </para> + +<para +>La <acronym +>CDDB</acronym +> puede identificar su &CD; y a menudo descargar la lista de pistas de ese &CD; o cargarlas desde el sistema de archivos. Vea la sección acerca del <link linkend="cddb-editor" +>editor de la base de datos de &CD;s</link +> para obtener más detalles sobre la utilización de esta herramienta.</para> +</sect2> + + + + +<sect2> +<title +>El deslizador de volumen</title> + +<screenshot> +<screeninfo +>El deslizador de volumen</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd9.png" format="PNG"/></imageobject> +<textobject +><phrase +>El deslizador de volumen</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Este deslizador controla el volumen de la salida de audio del &CD;. Cuanto más a la derecha más alto y cuanto más a la izquierda más bajo. Si va a reproducir su &CD; a través de la tarjeta de sonido, el mezclador de su tarjeta de sonido también afectará al volumen de reproducción.</para> +</sect2> + + +<sect2> +<title +>El selector de pistas</title> + +<screenshot> +<screeninfo +>El selector de pistas</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd11.png" format="PNG"/></imageobject> +<textobject +><phrase +>El selector de pistas</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Este desplegable muestra el número de pista actual, el nombre de la pista y el tiempo (en minutos y segundos). Puede utilizar este desplegable para seleccionar directamente cualquier pista del &CD;. </para> +</sect2> + +</sect1> +</chapter> + +<chapter id="configuring-kscd"> +<title +>Configurando &kscd;</title> +<sect1 id="configuration-intro"> +<title +>La ventana principal de configuración</title> + +<para +>Puede configurar &kscd; pulsando en el botón <guibutton +>Extras</guibutton +>. Ésto hará aparecer un menú, en el que podrá seleccionar <guilabel +>Configurar &kscd;...</guilabel +>, que abrirá una nueva ventana.</para> +<para +>La ventana principal de configuración de &kscd; es un diálogo dividido en tres secciones principales. </para> + +<itemizedlist> +<listitem +><para +><link linkend="kscd-options-tab" +><guilabel +>Reproductor de CD</guilabel +></link +> para determinar el aspecto y comportamiento de &kscd;.</para +></listitem> +<listitem +><para +><guilabel +>CDDB</guilabel +> que es utilizado para configurar las características de búsqueda de CDDB de &kscd;.</para +></listitem> +</itemizedlist> + +<para +>Puede decidir entre dos secciones utilizando los iconos de la parte izquierda del diálogo.</para> +</sect1> + +<sect1 id="kscd-options-tab"> +<title +>La pestaña <guilabel +>Reproductor de CD</guilabel +></title> + +<screenshot> +<screeninfo +>El diálogo <guilabel +>Reproductor de CD</guilabel +></screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd12.png" format="PNG"/></imageobject> +<textobject +><phrase +>El diálogo <guilabel +>Configuración de KSCD</guilabel +></phrase +></textobject> +</mediaobject> +</screenshot> + +<para +><guilabel +>Fuente del LCD</guilabel +> lista los tipos de letra seleccionados para mostrar toda la infomación en el visor de estado de &kscd;. Para cambiar el tipo de letra, pulse el botón <guibutton +>Elegir...</guibutton +></para> + +<para +>Los campos <guilabel +>Color del LCD</guilabel +> y <guilabel +>Color del fondo</guilabel +> muestran los colores del texto y del fondo del visor de estado. Pulse en las barras de color para modificar estos colores.</para> + + +<!-- +<para +>The <guilabel +>Unix mail command</guilabel +> field shows the +command used to send new <acronym +>CDDB</acronym +> entries to the +database. The default value is <userinput +><command +>mail</command> +<option +>-s <replaceable +>%s</replaceable +></option +></userinput +>. You +will need to make sure this command will actually send mail to +non-local systems if you want to submit <acronym +>CDDB</acronym> +entries, especially if you access the Internet through a dial-up +connection. Check the documentation for your &Linux; distribution for +details. Some Linux distributions that use sendmail to deliver email +require only that you enter your mail host into the +<option +>"Smart" relay host</option +> field in +<filename +>/etc/sendmail.cf</filename +>. In addition, the +<acronym +>CDDB</acronym +> site will want to be able to mail you back; it +may therefore also be necessary to edit +<filename +>/etc/sendmail.cf</filename +> to ensure that the return +address on the submission is valid. Your mileage is likely to vary. If +all else fails, use <link linkend="smtp-options" +>SMTP</link> +instead.</para> + +<para +>The <guilabel +>WWW-Browser</guilabel +> section lets you choose which web +browser to use to access the web sites in the <link linkend="information-button" +>information button</link +> menus. You can choose +either &konqueror; or a custom browser with the radio buttons. By default, the +<guilabel +>Use Custom Browser</guilabel +> field contains +<userinput +><command +>kfmclient</command> +<option +><replaceable +>openURL %s</replaceable +></option +></userinput +>.</para> +--> + +<para +>Si marca la casilla <guilabel +>Mostrar el icono en la bandeja del sistema</guilabel +> aparecerá un control de &kscd; en el panel de &kicker;.</para> + +<para +>Marcar la casilla <guilabel +>Anunciar las pistas</guilabel +> hará que aparezca información en la parte superior de la ventana de kicker cada vez que cambie la pista del &CD;. Esta ventana desaparecerá automáticamente al cabo de 5 segundos.</para> + +<screenshot> +<screeninfo +>El anuncio de las pistas</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscdannounc.png" format="PNG"/></imageobject> +<textobject +><phrase +>El anuncio de las pistas</phrase +></textobject> +</mediaobject> +</screenshot> + + +<para +>Utilice la opción <guilabel +>Saltar intervalo</guilabel +> para configurar el número de segundos a saltar hacia delante o detrás, cuando se pulsen los botones <guilabel +>saltar hacia delante</guilabel +> o <guilabel +>saltar hacia atrás</guilabel +> del Panel de control.</para> + +<para +><guilabel +>Reproducir al introducir el CD</guilabel +> hará que el &CD; se reproduzca automáticamente al introducir el CD, sin necesidad de pulsar el botón <guibutton +>Reproducir</guibutton +>.</para> + +<para +><guilabel +>Expulsar al terminar de reproducir el CD</guilabel +> hace que el &CD; sea expulsado automáticamente cuando acabe la reproducción.</para> + +<para +><guilabel +>Dejar de reproducir CD al salir</guilabel +> hace que la reproducción del &CD; se detenga cuando se cierre &kscd;.</para> + +<para +>El campo <guilabel +>Dispositivo CD-ROM</guilabel +> contiene el nombre del dispositivo de &CD-ROM; que se utilizará para reproducir &CD;s de audio. El valor predeterminado es <filename +>/dev/cdrom</filename +>. Los permisos para este dispositivo tiene que estar configurados de forma que se pueda abrir en modo de sólo lectura. Para cambiar los permisos para este dispositivo necesitará, en la mayoría de los casos, tener privilegios de superusuario y podrá realizarlo desde la línea de órdenes, o desde el modo Súper Usuario de &konqueror;.</para> + +<note +><para +>Antes de comentar la opción que sigue, es importante entender que existen dos formas de que un ordenador pueda reproducir un &CD;.</para> + +<para +>El primer método (con &kscd; nos referimos a la reproducción digital directa), se consigue con la lectura de los datos digitales del &CD; utilizando la Extracción de Audio Digital (EAD). Estos datos se envía a la CPU de su máquina, que convierte los datos digitales en sonido. Este método necesita una unidad de &CD; que sea capaz de la EAD (la mayor parte de las unidades nuevas lo son) y necesita tiempo de proceso de la CPU para generar sonidos que pueda oir.</para> + +<para +>El segundo método utiliza la circuitería interna disponible en la mayor parte de las unidades de &CD; para leer los datos y generar los sonidos que oirá sin utilizar la la CPU de su ordenador. Estos datos se transmiten directamente a través de un cable dedicado a la tarjeta de sonido de su ordenador. Este método necesita mejor tiempo de proceso de CPU, pero necesita que el cable dedicado esté conectado dentro de su ordenador. No todos los ordenadores tienen esta conexión.</para +></note> + +<para +>La casilla <guilabel +>Utilizar reproducción digital directa</guilabel +> determina qué método utilizará &kscd; para leer las pistas de audio. Si está marcada esta casilla, se utilizará el primer método. Si no está marcada, se utilizará el segundo.</para> + +<para +>Se ha seleccionado la reproducción digital directa, el desplegable <guilabel +>Select motor de audio</guilabel +> le permitirá seleccionar el motor al que debería enviarse la información digital. Los contenidos del desplegable variarán dependiendo de su sistema. La mayor parte de los usuarios deberían seleccionar <guilabel +>arts</guilabel +>. También puede seleccionar el dispositivo para el motor de audio utilizado a través del cuadro <guilabel +>Seleccionar dispositivo de audio</guilabel +>. Un discusión completa sobre los dispositivos y motores de audio están más allá del propósito de este manual.</para> + +<para +>Si la casilla <guilabel +>Permitir elegir la codificación</guilabel +> está marcada, puede seleccionar la codificación del texto para los resultados de las peticiones CDDB.</para> +<tip +><para +>La estándar describe los resultados CDDB estrictamente en Latin 1. Si no ha tenido problemas con su información CDDB, deje esta casilla sin marcar.</para +></tip> + + +<para +>El botón <guibutton +>Ayuda</guibutton +> abre la página de contenidos de la ayuda de &kscd;.<guibutton +>Predeterminados</guibutton +> restaura los valores predeterminados de todas las entradas en este diálogo. <guibutton +>Aceptar</guibutton +> guarda la configuración y cierra la ventana; <guibutton +>Aplicar</guibutton +> guarda la configuración sin cerrar la ventana; <guibutton +>Cancelar</guibutton +> cierra la ventana sin guardar los cambios. </para> +</sect1> + +<sect1 id="freedb-tab"> +<title +>La pestaña <guilabel +>buscar freedb</guilabel +></title> +<screenshot> +<screeninfo +>La pestaña <guilabel +>buscar freedb</guilabel +> del diálogo de configuración</screeninfo> +<mediaobject> +<imageobject +> <imagedata fileref="kscd14.png" format="PNG"/> </imageobject> +<textobject +><phrase +>La pestaña <guilabel +>buscar freedb</guilabel +> del diálogo de configuración</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>La pestaña <guilabel +>buscar freedb</guilabel +> configura las funciones sobre <acronym +>CDDB</acronym +> de &kscd;.</para> + +<para +>La opción <guilabel +>Modo</guilabel +> determina cómo se hace la búsqueda en <acronym +>CDDB</acronym +>. <guilabel +>Sólo caché</guilabel +> significa que solo se utilizará la información existente en su ordenador. <guilabel +>Caché y remoto</guilabel +> buscará información que realmente no tenga, mientras que <guilabel +>Sólo remoto</guilabel +> buscará cada disco en Internet. Se puede configurar el tiempo máximo de espera de la búsqueda.</para> + + +<para +>La sección <guilabel +>Servidor CDDB</guilabel +> determina que sitio de espejo CDDB se utiliza por &kscd; para obtener información del álbum. Puede introducir un nombre de servidor, número de puerto y protocolo utilizando los cuadros de texto y un desplegable o puede pulsar el botón <guibutton +>Mostrar lista de servidores</guibutton +>. Pulsar este botón abrirá una ventana nueva con una lista de espejos CDDB y su ubicaciones. Solo tiene que seleccionar el servidor que desee de la lista y pulsar <guibutton +>Aceptar</guibutton +>.</para> + +<para +>La sección <guilabel +>Ubicación del caché</guilabel +> le permite determinar dónde guardará &kscd; la información CDDB en su ordenador. Para añadir una carpeta, introduzca la ubicación de la carpeta en el cuadro de texto de la parte superior de la sección y pulse <guibutton +>Añadir</guibutton +>. Puede seleccionar una carpeta pulsando en la carpeta de archivo azul situado a la derecha del cuadro de texto. Para borrar una carpeta, pulse en el nombre de la carpeta una vez con el &LMB; y pulse <guibutton +>Eliminar</guibutton +>. Puede cambiar el orden en que &kscd; busca las carpetas pulsando en el nombre de la carpeta y pulsando en los botones <guibutton +>Mover arriba</guibutton +> y <guibutton +>Mover abajo</guibutton +></para> + +<para +>El botón <guibutton +>Ayuda</guibutton +> abre la página de contenidos de la ayuda de &kscd;.<guibutton +>Predeterminados</guibutton +> restaura los valores predeterminados de todas las entradas en este diálogo. <guibutton +>Aceptar</guibutton +> guarda la configuración y cierra la ventana; <guibutton +>Aplicar</guibutton +> guarda la configuración sin cerrar la ventana; <guibutton +>Cancelar</guibutton +> cierra la ventana sin guardar los cambios. </para> + +</sect1> + +<sect1 id="smtp-options"> +<title +>La pestaña <guilabel +>enviar freedb</guilabel +></title> + +<screenshot> +<screeninfo +>La pestaña enviar freedb</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd16.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para +>La pestaña enviar freedb configura la conexión al servidor de correo para enviar una nueva entrada <acronym +>CDDB</acronym +>. Esto es práctico si no tiene su propio sistema configurado como servidor. </para> + +<para +>Si planea enviar una entrada CDDB, en primer lugar debe decidir entre el envío a través de HTTP o de una entrada como un correo electrónico (a través de SMTP). </para> + +<tip +><para +>Es más simple el envío de nuevas entradas utilizando &HTTP;. Algunos cortafuegos bloquean este tráfico. Si su cortafuegos evita el envío de nuevas entradas utilizando &HTTP;, puede utilizar SMTP.</para +></tip> + +<para +>En primer lugar <guilabel +>&HTTP;</guilabel +> o <guilabel +>SMTP (Email)</guilabel +> para determinar qué protocolo utilizar.</para> + +<sect2 id="http-options"> +<title +>Utilizar &HTTP; para enviar información CDDB</title> +<para +>Puede introducir un nombre de servidor o un número de puerto en el cuadro de texto. Si desea enviar esta información a los servidores internacionales, no necesitará cambiar nada.</para> +</sect2> + +<sect2 id="smtp2-options"> +<title +>Utilizar SMTP (Email) para enviar información CDDB</title> +<para +>Para preparar el envío de información utilizando el correo electrónico debe introducir su dirección de correo electrónico en el cuadro <guilabel +>Responder a</guilabel +>, su servidor de correo electrónico en el cuadro <guilabel +>Servidor SMTP</guilabel +> y seleccionar el número de puerto en el desplegable <guilabel +>Puerto</guilabel +>.</para> +<para +>Si necesita utilizar una contraseña para enviar un correo electrónico utilizando el servidor de correo electrónico, marque la casilla <guilabel +>El servidor necesita autentificación</guilabel +> e introduzca el nombre de usuario en el cuadro de texto <guilabel +>Usuario</guilabel +>.</para> + +<para +>El botón <guibutton +>Ayuda</guibutton +> abre la página de contenidos de la ayuda de &kscd;.<guibutton +>Predeterminados</guibutton +> restaura los valores predeterminados de todas las entradas en este diálogo. <guibutton +>Aceptar</guibutton +> guarda la configuración y cierra la ventana; <guibutton +>Aplicar</guibutton +> guarda la configuración sin cerrar la ventana; <guibutton +>Cancelar</guibutton +> cierra la ventana sin guardar los cambios. </para> +</sect2> +</sect1> + + +</chapter> + +<chapter id="cddb-editor"> +<title +>El <guilabel +>editor de la base de datos de CDs</guilabel +></title> + +<screenshot> +<screeninfo +>El editor de la base de datos de $CD;</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd13.png" format="PNG"/></imageobject> +<textobject +><phrase +>El editor de la base de datos de &CD;</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>El editor de la base de datos de &CD;s le permite modificar, descargar, guardar, anotar, y enviar entradas de tipo <link linkend="cddb-support" +><acronym +>CDDB</acronym +> (Compact Disc Data Base)</link +></para> + +<para +>Si existe una entrada en el árbol local de la <acronym +>CDDB</acronym +> (vea la <link linkend="freedb-tab" +>subsección sobre CDDB</link +> en el capítulo Configuración) para el &CD; que se encuentra en la unidad de &CD-ROM;, o si el disco fue encontrado en la freedb, verá el nombre del artista y el título del &CD; en los campos <guilabel +>Artista</guilabel +> y <guilabel +>Título</guilabel +> y una lista de las pistas con los títulos de las canciones en el cuadro de selección <guilabel +>Pistas</guilabel +>. En caso contrario, verá una lista de las pistas y las duraciones sin los títulos.</para> + +<para +>Puede realizar una anotación para el disco entero pulsando en el botón <guibutton +>Comentario</guibutton +> debajo del campo <guilabel +>Título </guilabel +>, o para la pista seleccionada en el cuadro de selección <guilabel +>Pistas</guilabel +> mediante el botón adyacente <guibutton +>Comentario</guibutton +>. Si selecciona una pista en el cuadro <guilabel +>Pistas</guilabel +>, el título, si existe, aparecerá en el campo <guilabel +>Título</guilabel +> situado debajo. Puede escribir un título para la canción en el campo, o editar la entrada conforme desee. Pulse la tecla <keycap +>Intro</keycap +> en su teclado y el texto aparecerá en la línea adecuada del cuadro de selección.</para> + +<para +>Una vez que se le ha dado título a todas las pistas y que los campos <guilabel +>Artista</guilabel +> y<guilabel +>Título</guilabel +> han sido rellenados, puede pulsar el botón <guibutton +>Enviar</guibutton +> para enviar sus entradas por correo a la freedb.</para> + +<para +>Se le pedirá que seleccione una categoría para el envío. La sección <guilabel +>ID del disco</guilabel +> muestra el código de 32 bit (<acronym +>ID</acronym +>) utilizado por freedb para identificar un disco compacto. Sobre el código <acronym +>ID</acronym +> se encuentra la categoría de la entrada de <guilabel +>freedb</guilabel +>. Estas categorías se corresponden con el árbol de subcarpetas de la carpeta elegida como <guilabel +>Carpeta base de freedb</guilabel +> en la <link linkend="freedb-tab" +>pestaña <abbrev +>freedb</abbrev +></link +> de la ventana de configuración de &kscd;.</para> + +<para +>El <guilabel +>Tiempo total</guilabel +> muestra el tiempo de reproducción total del &CD;.</para> + +<para +>Pulse el botón <guibutton +>Obtener info.</guibutton +> para descargar los datos de la <acronym +>CDDB</acronym +>. Pulse el botón <guibutton +>Aceptar </guibutton +> para guardad localmente los cambios. El botón <guibutton +>Cerrar</guibutton +> cierra el editor de la base de datos de &CD;s sin guardar los cambios.</para> + +</chapter> + +<chapter id="using-kscd-in-the-panel"> +<title +>Uso de &kscd; en el panel de &kde;</title> + +<screenshot> +<screeninfo +>Uso de &kscd; en el panel de &kde;</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd18.png" format="PNG"/></imageobject> +<textobject +><phrase +>Uso de &kscd; en el panel de &kde;</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Cuando la casilla <guilabel +>Mostrar icono en la bandeja del sistema</guilabel +> esté marcada, aparecerá un pequeño applet de &kscd; en &kicker;. A diferencia de la ventana principal de &kscd;, este applet se encuentra disponible en todos los escritorios. Pulse con el botón <mousebutton +>derecho</mousebutton +> en el applet para mostrar un menú desplegable desde el que controlar la reproducción del &CD;. El pulsar con el botón <mousebutton +>izquierdo</mousebutton +> en el applet oculta la ventana principal de &kscd;. Si la ventana principal se encuentra oculta, el pulsar por segunda vez con el botón <mousebutton +>izquierdo</mousebutton +> la restaurará. </para> + +<note +><para +>Para ser precisos, el applet se muestra en la <application +>bandeja del sistema</application +> en el panel. Si no aparece ningún applet cuando se minimiza &kscd;, puede que haya eliminado la bandeja. Para añadirla, pulse con el botón <mousebutton +>derecho</mousebutton +> en un punto vacío del panel y seleccione <menuchoice +><guisubmenu +>Añadir</guisubmenu +> <guisubmenu +>Applet</guisubmenu +> <guimenuitem +>Bandeja del sistema</guimenuitem +> </menuchoice +></para +></note> + +</chapter> + +<chapter id="cddb-support"> +<title +>Soporte para <acronym +>CDDB</acronym +></title> + +<para +>La base de datos freedb es una base de datos en red distribuida accesible desde Internet, que contiene información sobre la mayoría de &CD;s de audio en circulación. Si tiene acceso a Internet, es probable que nunca tenga que introducir manualmente los datos sobre sus &CD;s si ha configurado correctamente esta opción. Vea la subsección sobre <link linkend="freedb-tab" +>la pestaña de freedb</link +> en el capitulo sobre la configuración de &kscd; para obtener instrucciones detalladas sobre como configurar este servicio, y la sección <link linkend="cddb-editor" +>el editor de la base de datos de CDs</link +> para encontrar instrucciones sobre como editar las entradas de la <acronym +>CDDB</acronym +>.</para> + +<para +>La utilización de la <acronym +>CDDB</acronym +> es gratis. Se anima a los usuarios a que envíen nuevas entradas a la base de datos.</para> + +<para +>Cuando prepare entradas para la <acronym +>CDDB</acronym +>, por favor, tome los siguientes puntos en consideración:</para> + +<itemizedlist> +<listitem +><para +>Utilice los caracteres «estándar» del latín. Algunos caracteres especiales están soportados, pero no se aceptarán entradas que utilicen, por ejemplo, caracteres del alfabeto griego o cirílico.</para +></listitem> +<listitem +><para +>Utilice un único carácter <keysym +>/</keysym +> en el campo <guilabel +>Artista / Título del disco</guilabel +> en el editor de la base de datos de &CD;s.</para> + +<para +>En el caso de los &CD;s de música clásica, es una practica común poner el nombre del compositor en la sección Artista (antes de la barra) y el nombre del intérprete en la sección Título (después de la barra).</para +></listitem +> +<listitem +><para +>Si envía una entrada que ya existe en la base de datos, cualquier información extra que introduzca puede que se añada a la entrada existente.</para> +</listitem> +</itemizedlist> + +<para +>De forma predeterminada, &kscd; instala las categorías estándar de <acronym +>CDDB</acronym +> en <filename class="directory" +>$KDEDIR/share/apps/kscd/cddb</filename +>. Puede crear tantas carpetas de subcategorías como desee. Sin embargo, al enviar los datos, sólo se mostrarán las categorías oficiales de la <acronym +>CDDB</acronym +>. La dirección predeterminada de envío es <email +>[email protected]</email +>. Para obtener más información sobre <abbrev +>freedb</abbrev +> visite su página principal.</para> + +<para +>La entrada local de <acronym +>CDDB</acronym +> para un &CD; en concreto, se guarda en el archivo <filename +><replaceable +>nombre de la categoría</replaceable +>/<replaceable +>ID del disco</replaceable +></filename +> en la carpeta raíz de <acronym +>CDDB</acronym +>. Estos archivos pueden ser editados con cualquier editor de textos, si no tiene nada mejor que hacer en su tiempo libre.</para> + +</chapter> + +<chapter id="troubleshooting"> +<title +>Solución de problemas con el reproductor de CD</title> + +<para +>Esta sección del manual proporciona una guía paso a paso para resolver problemas con su unidad de CD si el reproductor de CD no reproduce un &CD; de audio.</para> + +<sect1 id="ts-begin"> +<title +>Comenzar a resolver problemas</title> +<para +>Para comenzar, coloque un CD de audio en su unidad de CD. Cierre la puerta de la unidad de CD y pulse seproducir en la ventana de &kscd;. Busque la unidad de CD de su ordenador y seleccione el enlace que mejor describa su problema.</para> +<para +>Cuando pulso <guilabel +>Reproducir</guilabel +>:</para> +<itemizedlist> +<listitem +><para +><link linkend="ts-errorbox" +>Aparece un mensaje de error</link +></para +></listitem> +<listitem +><para +><link linkend="ts-playing" +>No aparece mensaje de error</link +></para +></listitem> +</itemizedlist> +</sect1> +<sect1 id="ts-playing"> +<title +>No he obtenido un mensaje de error, pero so se escucha sonido por los altavoces.</title> +<para +>En primer lugar, comprobaremos que está encendido el volumen en &kscd;.</para> +<para +>Al lado de la esquina superior derecha de la ventana de &kscd;, está situado el deslizador del volumen. el deslizador de volumen se parece a esto:</para> +<screenshot> +<screeninfo +>El deslizador de volumen</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd9.png" format="PNG"/></imageobject> +<textobject +><phrase +>El deslizador de volumen</phrase +></textobject> +</mediaobject> +</screenshot> +<para +>Pulse una vez en la barra amarilla vertical y arrastre la barra hascia la derecha hasta el final del deslizador.</para> +<para +>Si puede oir música ahora el problema está solucionado. Si todavía continúa sin oír la música, pulse <link linkend="ts-kmixlevels" +>aquí</link +> para continuar.</para> +</sect1> +<sect1 id="ts-kmixlevels"> +<title +>Determinar si el nivel del mezclador de volumen está activado</title> +<para +>El siguiente paso es determinar si los niveles de volumen de &kmix; son los apropiados.</para> +<note +><para +>&kmix; es un panel mezclador de sonido que se incluye en &kde;. Este mezclador le permite ajustar los niveles de volumen relativos de muchos componentes de sonido.</para +></note> +<para +>Para iniciar &kmix;, seleccione <menuchoice +><guimenu +>Botón K</guimenu +><guimenuitem +>Multimedia</guimenuitem +> <guimenuitem +>&kmix;</guimenuitem +></menuchoice +>.</para> +<para +>Una vez que haya iniciado &kmix;, tendrá una nueva ventana con una serie de deslizadores de volumen. Dependiendo de la configuración, los deslizadores pueden tener etiquetas, o éstas pueden estar ocultas. Si no ve ninguna etiqueta para los deslizadores, debería hacerlas visibles antes de continuar. Para hacer que sean visibles, seleccione <menuchoice +><guimenu +>Preferencias</guimenu +><guimenuitem +>Configurar &kmix;...</guimenuitem +></menuchoice +> en la ventana de &kmix;. Esto abrirá una pequeña ventana con una serie de casillas. Para activar las las etiquetas, marque la casilla <guilabel +>Mostrar etiquetas</guilabel +> y pulse <guibutton +>Aceptar</guibutton +>.</para> +<para +>Cada deslizador controla el volumen de diferentes dispositivos de audio. Existen dos partes para cada dispositivo que puede necesitar modificar. Como puede ver en cada deslizador existe un luz verde. Si pulsa sobre esta luz puede alternarla entre verde claro y verde oscuro. Si la luz es verde oscura, el dispositivo de audio se silencia y no producirá sonido. Si la luz es verde claro, el dispositivo no estará silenciado. Una vez que haya comprobado que el dispositivo no está silenciado, puede incrementar el volumen de un dispositivo arrastrando la barra amarilla del deslizador hacia abajo.</para> +<note +><para +>Algunos deslizadores también pueden tener una luz roja. Esta luz no es importante para la reproducción de discos compactos, por lo que por el momento podrá ignorarla.</para +></note> +<para +>Pulse en la pestaña <guilabel +>Salida</guilabel +>.</para> +<para +>Asegúrese de que los deslizadores no estén silenciados (luz verde claro) y que la barra amarilla esté en la parte superior del deslizador para los siguientes dispositivos de audio:</para> +<itemizedlist> +<listitem +><para +><guilabel +>Maestro.</guilabel +></para +></listitem> +<listitem +><para +><guilabel +>Mono maestro.</guilabel +></para +></listitem> +<listitem +><para +><guilabel +>PC Speaker</guilabel +></para +></listitem> +<listitem +><para +><guilabel +>PCM</guilabel +></para +></listitem> +</itemizedlist> + +<para +>Si todavía no escucha el &CD;, pulse en la pestaña <guilabel +>Entrada</guilabel +>.</para> +<para +>Ahora asegúrese de que el deslizador <guilabel +>CD</guilabel +> no esté silenciado (luz verde claro) y que la barra amarilla esté en la parte superior del deslizador.</para> +<para +>Si ha conseguido escuchar el &CD;, puede parar la resolución de problemas. Sino, pulse <link linkend="ts-othersounds" +>aquí</link +> para continuar.</para> +</sect1> +<sect1 id="ts-othersounds"> +<title +>Determinar si se escuchan otros sonidos en el ordenador</title> +<para +>En esta sección vamos a comprobar si son audibles otros sonidos de su ordenador. Haremos esto reproduciendo un sonido guardado en su disco duro. </para> +<para +>En primer lugar localizaremos el archivo de prueba adecuado. Esto se puede realizar utilizando la línea de órdenes.</para> +<para +>Seleccione <menuchoice +><guimenu +>Botón K</guimenu +><guimenuitem +>Sistema</guimenuitem +> <guimenuitem +>&konsole;</guimenuitem +></menuchoice +>. Aparecerá una ventana en la que podrá escribir una orden. Teclee:</para> +<para +><screen +><prompt +>$</prompt +> <userinput +><command +>locate -n1 KDE_Window_Open.wav</command +></userinput +></screen +></para> +<para +>Cuando pulse entrar, después de un momento, se mostrará una línea con la ubicación de un archivo.</para> +<para +><screen +><prompt +>$</prompt +> <userinput +><command +>locate -n1 KDE_Window_Open.wav</command +></userinput> +/usr/local/kde/share/sounds/KDE_Window_Open.wav</screen +></para> + +<para +>Ahora debe pedir a &kde; que reproduzca este archivo de sonido. Teclee el texto <command +>noatun</command +> seguido de un espacio. Copie la ubicación completa del archivo que localizó con la orden anterior. Por ejemplo: </para> +<para +><screen +><prompt +>$</prompt +> <userinput +><command +>noatun /usr/local/kde/share/sounds/KDE_Window_Open.wav</command +></userinput +></screen +></para> +<para +>Si puede oír un sonido corto, <link linkend="ts-othersoundsplay" +>pulse aquí</link +>.</para> +<para +>Si no puede oír un sonido corto, su sistema de sonido no está configurado correctamente. Pulse <link linkend="ts-noothersounds" +>aquí</link +> para continuar.</para> +</sect1> + +<sect1 id="ts-noothersounds"> +<title +>La prueba de sonido falló al reproducir</title> +<para +>Veamos, ya hemos verificado que el volumen de &kscd; y todos los niveles del mezclador de &kmix; están configurados correctamente. También enviamos una prueba de sonido y no hemos podido escuchar ningún sonido. Esto sugiere que el problema no es de &kscd;, sino más bien de su configuración de sonido.</para> +<note +><para +>Asegúrese de que el &CD; todavía se encuentra en la unidad de CD.</para +></note> +<para +>En primer lugar necesitaremos comprobar que los altavoces están enchufados y que su volumen es el correcto. Si está utilizando altavoces externos, compruebe lo siguiente:</para> +<itemizedlist> +<listitem +><para +>Asegúrese de que los altavoces están conectados a su ordenador correctamente (vea su manual de usuario si fuera necesario).</para +></listitem> +<listitem +><para +>Si sus altavoces usan pilas, reemplácelas por unas nuevas.</para +></listitem> +<listitem +><para +>Si sus altavoces externos están colgados de la pared, asegúrese de que están conectados, correctamente enchufados.</para +></listitem> +<listitem +><para +>Si su altavoces tienen un botón de encendido, asegúrese de que están encendidos.</para +></listitem> +<listitem +><para +>Si sus altavoces tienen un botón de volumen, asegúrese de que el volumen está en la posición media entre apagado y el máximo.</para +></listitem> +</itemizedlist> + +<para +>Si sus altavoces forman parte de su ordenador, compruebe que tienen un botón de volumen. Si esto es así asegúrese de que el volumen está en la posición media entre apagado y el máximo.</para> + +<para +>Si ha marcado todo esto, probablemente necesitará ayuda detallada para conseguir que se produzcan sonido en su ordenador. Una discusión completa de la resolución de este problema con el sistema de sonido se encuentra más allá del propósito de este manual y el usuario debe referirse a otras fuentes de internet. Algunas fuentes potenciales de información podrían ser:</para> + +<itemizedlist> +<listitem +><para +><ulink url="http://es.tldp.org/COMO-INSFLUG/COMOs/Sonido-COMO/index.html" +>COMO del sonido en Linux</ulink +>.</para +></listitem> +<listitem +><para +>El sitio web de su distribución probablemente tendrá un foro de usuario para plantear preguntas.</para +></listitem> +<listitem +><para +>Enviar una pregunta a un grupo de noticias de Usenet como comp.os.linux</para +></listitem> +<listitem +><para +>Utilice un motor de búsqueda para localizar a otros que han tenido problemas similares al suyo.</para +></listitem> +</itemizedlist> +</sect1> + +<sect1 id="ts-othersoundsplay"> +<title +>La prueba de sonido suena, pero no puedo oír el &CD;</title> +<para +>Es decir, hemos comprobado que el volumen de &kscd; y todos los niveles del mezclador de &kmix; son correctos. También hemos reproducido un sonido de prueba que se ha oído. Esto indica que el problema está limitado a &kscd; o al &CD;.</para> +<para +>Asegúrese de que el &CD; sea reproducible. Si éste es un &CD; nuevo, coloque otro CD en el reproductor (preferiblemente no situado en un ordenador) y asegúrese que el &CD; es reproducible en este dispositivo. Si es reproducible en otro dispositivo, continúe <link linkend="ts-ddpback" +>aquí</link +>.</para> +</sect1> + +<sect1 id="ts-ddpback"> +<title +>Intente utilizar la reproducción digital directa</title> +<para +>Existen dos formas de reproducir un &CD; por parte de los ordenadores personales.</para> + +<para +>El primer método (con &kscd; nos referimos a la reproducción digital directa), se consigue con la lectura de los datos digitales del &CD; utilizando la Extracción de Audio Digital (EAD). Estos datos se envía a la CPU de su máquina, que convierte los datos digitales en sonido. Este método necesita una unidad de &CD; que sea capaz de la EAD (la mayor parte de las unidades nuevas lo son) y necesita tiempo de proceso de la CPU para generar sonidos que pueda oir.</para> + +<para +>El segundo método utiliza la circuitería interna disponible en muchos dispositivos de &CD; para leer los datos y generar los sonidos sin utilizar la CPU de los ordenadores. Estos datos se transmiten directamente por un cable dedicado a la tarjeta de sonido de su ordenador. Este método necesita menos tiempo de proceso de CPU, pero necesita que el cable dedicado sea conectado dentro de su ordenador. No todos los ordenadores tienen esta conexión.</para> + +<para +>&kscd; utiliza de forma predeterminada este segundo método de reproducción. El siguiente paso en la resolución de los problemas de su &CD; es la reproducción directa digital. Para que esto suceda pulse el botón <guibutton +>Detener</guibutton +> en la ventana de &kscd;. Esto detendrá cualquier intento de reproducir el &CD; por el momento.</para> + +<para +>Ahora pulse el botón <guibutton +>Extras</guibutton +>. Ésto abrirá un pequeño menú. Seleccione <guilabel +>Configurar &kscd;...</guilabel +>Ésto abrirá un nuevo cuadro de diálogo.</para> +<para +>Pulse el icono <guilabel +>Reproductor de CD</guilabel +> en la parte izquierda del cuadro de diálogo.</para> +<para +>Marque la casilla <guilabel +>Utilizar reproducción digital directa</guilabel +>.</para> +<para +>Pulse <guibutton +>Aceptar</guibutton +> </para> +<para +>Ahora pulse <guibutton +>Reproducir</guibutton +> en la ventana de &kscd; y vea si el &CD; comienza a reproducirse correctamente.</para> + +<para +>Sin continúa sin oir la música del &CD; su problema necesita de conocimientos específicos de su sistema y de los problemas encontrados. Se invita al lector a obtener información de los buenos recursos que existen en internet. Considere la búsqueda de ayuda en los siguientes lugares:</para> + +<itemizedlist> +<listitem +><para +>El sitio web de su distribución probablemente tendrá un foro de usuario para plantear preguntas.</para +></listitem> +<listitem +><para +>Enviar una pregunta a grupos de noticias de Usenet como comp.os.linux o un canal de IRC para los usuarios de su sistema operativo.</para +></listitem> +<listitem +><para +>Utilice un motor de búsqueda para localizar a otros que han tenido problemas similares al suyo.</para +></listitem> +</itemizedlist> + +</sect1> + + +<sect1 id="ts-errorbox"> +<title +>Aparece un mensaje ede error</title> +<para +>Probablemente los cuadros de error más comunes serán uno de los siguientes:</para> +<screenshot> +<screeninfo +>Diálogo de error</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd19.png" format ="PNG"/></imageobject> +<textobject +><phrase +>Diálogo de error</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>La información sobre este diálogo está disponible en la sección <link linkend="questions-and-answers" +>Preguntas y respuestas</link +> de este manual.</para> + +<para +>Si recibe otro cuadro de error, debería enviar el texto con el error a un foro de discusión o introducir el texto en un motor de búsqueda como <ulink url="http://www.google.com" +>Google</ulink +>.</para> +</sect1> +</chapter> + +<chapter id="questions-and-answers"> +<title +>Preguntas y respuestas</title> + +<qandaset> +<qandaentry> +<question +><para +>Veo este diálogo cuando arranco &kscd;. ¿Cuál es el problema?</para> +<screenshot> +<screeninfo +>Diálogo de error</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd19.png" format ="PNG"/></imageobject> +<textobject +><phrase +>Diálogo de error</phrase +></textobject> +</mediaobject> +</screenshot> +</question> +<answer +><para +>Significa que &kscd; no pudo abrir su unidad de &CD-ROM;. El nombre del dispositivo en el campo <guilabel +>Dispositivo CDROM</guilabel +> de <guilabel +>Configuración de kscd</guilabel +> debe apuntar al dispositivo de bloque asociado a su unidad de &CD-ROM;. A menudo se tratará de un enlace al dispositivo <acronym +>IDE</acronym +> (<filename +>/dev/hdx</filename +>) o <acronym +>SCSI</acronym +> (<filename +>/dev/sdx</filename +>) correspondiente.</para> + +<para +>El dispositivo pertenece normalmente al usuario root y al grupo root, y no se permite a los usuarios normales abrirlo para lectura, escritura o ejecución directamente. Esto no tiene <emphasis +>nada</emphasis +> que ver con la orden <command +>mount</command +>, que no tiene problema de permisos ya que se encuentra <application +>SUID</application +> (Set User <acronym +>ID</acronym +>, es decir, utiliza la función <function +>setuid()</function +> de la biblioteca estándar de Un*x para tomar la identidad de otro usuario). &kscd; debe de poder obtener un descriptor de archivo de sólo lectura que apunte al dispositivo de &CD; para poder controlar el &CD-ROM; y leer datos directamente del disco.</para> + +<para +>Si tiene la contraseña del superusuario, puede arreglar esto fácil y rápidamente. Cambie al usuario root y ejecute <userinput +><command +>chmod</command +> <option +>a+r</option +> <filename +><replaceable +>/dev/cdrom</replaceable +></filename +></userinput +> para permitir que cualquier usuario del sistema pueda leer desde <filename +>/dev/cdrom</filename +>. Si su dispositivo de &CD-ROM; tiene otro nombre, cambie los permisos a ese dispositivo siguiendo el mismo procedimiento. Si no tiene la contraseña del superusuario, pídale amablemente al administrador del sistema que le dé permisos de lectura sobre el dispositivo de &CD-ROM;.</para> + +<para +>Vea también el capitulo sobre <link linkend="configuring-kscd" +>la configuración de KSCD</link +></para +></answer> +</qandaentry> + +<qandaentry +> +<question +><para +>No consigo que la <acronym +>CDDB</acronym +> funcione. ¿Como puedo obtener información sobre lo que estoy haciendo mal?</para +></question +> +<answer +><para +>Si tiene problemas usando la <acronym +>CDDB</acronym +> intente ejecutar &kscd; desde la línea de órdenes con la opción <option +>-d</option +> y observe la salida de depurado.</para +></answer +> +</qandaentry> +</qandaset> +</chapter> + +<chapter id="credits-and-license"> +<title +>Créditos y licencias</title> + +<para +>Derechos de autor de &kscd;. 1997,1998. &Bernd.Johannes.Wuebben; &Bernd.Johannes.Wuebben.mail;.</para> + +<para +>&kscd; contiene código sacado de: </para> +<itemizedlist> +<listitem +><para +>Derechos de autor de <application +>workman</application +> 1.4 beta 3. (c) Steven Grimm <email +>[email protected]</email +>.</para +></listitem> +</itemizedlist> + + +<para +>Agradecimientos especiales a Ti Kan y Steve Scherf, los inventores del concepto <acronym +>CDDB</acronym +>. Visite <ulink url="http://www.cddb.com/" +>http://ww.cddb.com</ulink +> para obtener más información sobre la <acronym +>CDDB</acronym +>.</para> + +<para +>Y agradecimientos muy especiales a David White, quien escribió el documento de ayuda de &kscd; original. ¡Gran trabajo David!</para> + +<para +>Derechos de autor de la documentación actualizada de KDE 2.0. &Jonathan.Singer; &Jonathan.Singer.mail;.</para> + +<para +>Derechos de autor de la documentación actualizada para KDE 3.4. &Mike.McBride; &Mike.McBride.mail;.</para> + +<para +>Traducido por Salvador Gimeno Zanón<email +>[email protected]</email +>, Miguel Revilla Rodríguez <email +>[email protected]</email +> y Santiago Fernández Sancho <email +>[email protected]</email +>.</para +> +&underFDL; &underGPL; </chapter> + +<appendix id="installation"> +<title +>Instalación</title> + +<sect1 id="how-to-obtain-kscd"> +<title +>Cómo obtener &kscd;</title> +&install.intro.documentation; </sect1> + +<sect1 id="requirements"> +<title +>Requerimientos</title> + +<para +>Para que &kscd; se compile correctamente, necesita la última versión de las bibliotecas de KDE, además de las bibliotecas &Qt; y C++. Todas las bibliotecas necesarias, así como &kscd; pueden encontrarse en el &FTP; de &kde;, &kde-ftp;.</para> + +</sect1 +> + +<sect1 id="compilation-and-installation" +> +<title +>Compilación e instalación</title +> &install.compile.documentation; <para +>Por favor, informe al mantenedor actual, Aaron Seigo, en &Aaron.J.Seigo.mail; de cualquier modificación que realice para conseguir que &kscd; se compile en su plataforma.</para> + +</sect1> + +</appendix> + +&documentation.index; +</book> +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes: nil +sgml-general-insert-case: lower +End: +--> diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd.png Binary files differnew file mode 100644 index 00000000000..f52afbeb303 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd11.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd11.png Binary files differnew file mode 100644 index 00000000000..8740c0ebcd3 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd11.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd12.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd12.png Binary files differnew file mode 100644 index 00000000000..92dec43c109 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd12.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd13.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd13.png Binary files differnew file mode 100644 index 00000000000..faf5231f533 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd13.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd14.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd14.png Binary files differnew file mode 100644 index 00000000000..4f0aa64b5ae --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd14.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd16.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd16.png Binary files differnew file mode 100644 index 00000000000..fa581e04651 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd16.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd18.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd18.png Binary files differnew file mode 100644 index 00000000000..74a6d206dd3 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd18.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd19.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd19.png Binary files differnew file mode 100644 index 00000000000..da3ed84deff --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd19.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd2.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd2.png Binary files differnew file mode 100644 index 00000000000..8baeed8e73c --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd2.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd3.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd3.png Binary files differnew file mode 100644 index 00000000000..a24905f1c67 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd3.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd5.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd5.png Binary files differnew file mode 100644 index 00000000000..c7987aa8233 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd5.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd6.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd6.png Binary files differnew file mode 100644 index 00000000000..c611274a68f --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd6.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscd9.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscd9.png Binary files differnew file mode 100644 index 00000000000..52efd2dd6cb --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscd9.png diff --git a/tde-i18n-es/docs/tdemultimedia/kscd/kscdannounc.png b/tde-i18n-es/docs/tdemultimedia/kscd/kscdannounc.png Binary files differnew file mode 100644 index 00000000000..271a9ad63d7 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/kscd/kscdannounc.png diff --git a/tde-i18n-es/docs/tdemultimedia/noatun/Makefile.am b/tde-i18n-es/docs/tdemultimedia/noatun/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/noatun/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdemultimedia/noatun/Makefile.in b/tde-i18n-es/docs/tdemultimedia/noatun/Makefile.in new file mode 100644 index 00000000000..f4180df2b0b --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/noatun/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdemultimedia/noatun +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = es +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/noatun/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/noatun/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/noatun/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/noatun/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/noatun/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + 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)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=index.docbook index.cache.bz2 Makefile.in Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) index.docbook + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun + @for base in index.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun/$$base ;\ + done + +uninstall-nls: + for base in index.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/noatun/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in index.docbook ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdemultimedia/noatun/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/noatun/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/noatun/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-es/docs/tdemultimedia/noatun/index.cache.bz2 b/tde-i18n-es/docs/tdemultimedia/noatun/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..c53b11bf31f --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/noatun/index.cache.bz2 diff --git a/tde-i18n-es/docs/tdemultimedia/noatun/index.docbook b/tde-i18n-es/docs/tdemultimedia/noatun/index.docbook new file mode 100644 index 00000000000..4bb806f5503 --- /dev/null +++ b/tde-i18n-es/docs/tdemultimedia/noatun/index.docbook @@ -0,0 +1,666 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&noatun;"> + <!ENTITY package "tdemultimedia"> + <!ENTITY % Spanish "INCLUDE" +> <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> +<bookinfo> +<title +>El manual de &noatun;</title> + +<authorgroup> +<author +><firstname +>Charles</firstname +> <surname +>Samuels</surname +> <affiliation +> <address +><email +>[email protected]</email +></address> +</affiliation> +</author> +<othercredit role="translator" +><firstname +>Salvador</firstname +><surname +>Gimeno Zanón</surname +><affiliation +><address +><email +>[email protected]</email +></address +></affiliation +><contrib +>Traductor</contrib +></othercredit +> <othercredit role="translator" +> <firstname +>Miguel</firstname +> <surname +>Revilla Rodríguez</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +> </othercredit +> <othercredit role="translator" +> <firstname +>Alejandro</firstname +> <surname +>Exojo Piqueras</surname +> <affiliation +><address +><email +>[email protected]</email +></address +></affiliation +> <contrib +>Traductor</contrib +> </othercredit +> +</authorgroup> + +<copyright> +<year +>2001</year +><year +>2002</year> +<holder +>Charles Samuels</holder> +</copyright> + +<legalnotice +>&FDLNotice;</legalnotice> + +<date +>2002-03-01</date> +<releaseinfo +>2.00.00</releaseinfo +> <!-- Use App version here --> + +<abstract> +<para +>&noatun; es un reproductor de medios para &kde; con un gran número de accesorios</para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>Noatun</keyword> +<keyword +>tdemultimedia</keyword> +<keyword +>mp3</keyword> +<keyword +>música</keyword> +<keyword +>medios</keyword> +</keywordset> +</bookinfo> + +<chapter id="introduction"> +<title +>Introducción</title> + +<para +>&noatun; es un reproductor de medios para &kde; con un gran número de accesorios</para> + +<sect1 id="features"> +<title +>Características</title> + +<para +>&noatun; es una interfaz elaborada para &arts;, el sintetizador analógico en tiempo real. Para añadir objetos de reproducción adicionales, vaya a <ulink url="http://noatun.kde.org/plugins/" +>http://noatun.kde.org/plugins.phtml</ulink +>, o a <ulink url="http://mpeglib.sf.net" +> http://mpeglib.sf.net</ulink +>. De forma predeterminada, &arts; soporta MP3 y MPEG-1. Vorbis también está soportado si las bibliotecas de Vorbis estaban disponibles durante la compilación de &kde;. </para> + +</sect1> +</chapter> + +<chapter id="using-noatun"> +<title +>Utilizar &noatun;</title> + +<para +>De manera predeterminada, &noatun; arranca con el accesorio de interfaz «Excelente». Se eligió este accesorio porque es el que más se parece al resto de aplicaciones &kde;.</para> + +<para +>Una de las peculiaridades de &noatun; es que no hay dos instalaciones idénticas y que no tiene una interfaz estándar, aunque hay una predeterminada. Es libre de combinar la selección de accesorios que desee, personalizando &noatun; ¡hasta que sea su reproductor multimedia ideal! </para> + +<sect1 id="title-format"> +<title +>Formato del título</title> +<para +>La ventana de preferencias de &noatun; contiene un cuadro de texto llamado <guilabel +>Formato del título</guilabel +>. Aquí puede personalizar la forma en la que aparecen los títulos. </para> + +<itemizedlist> +<listitem +><para +>El texto que escriba aparecerá sin cambios, salvo que aparezca entre <literal +>$( )</literal +>.</para +></listitem> +<listitem +><para +>El texto entre <literal +>$( )</literal +> leerá la propiedad de &noatun; para el elemento introducido y reemplazará el texto por ella.</para +></listitem> +<listitem +><para +>Si se encuentran comillas en el <literal +>$( )</literal +>, el texto entre las comillas será mostrado normalmente, pero sólo si existe una propiedad con el nombre.</para +></listitem> +<listitem +><para +>Las comillas pueden estar al principio del <literal +>$( )</literal +>, al final, o tanto al principio como al final.</para +></listitem> +</itemizedlist> + +<para +>Por ejemplo, <literal +>$(bitrate)</literal +> se reemplaza por el ancho de banda ocupado por el archivo, tal y como se obtiene del conector Metatag. Sin embargo, si se introducen comillas en ese campo, se mostrará el texto entre ellas: <literal +>$(bitrate"kbps")</literal +> mostrará el ancho del banda ocupado por el archivo, seguido de los caracteres <literal +>"kbps"</literal +>. Si la propiedad «bitrate» no existiese, no se mostraría nada. </para +> +</sect1> + +</chapter> + +<chapter id="using-noatun-plugins"> +<title +>Uso de los accesorios de &noatun;</title> + +<para +>Puede elegir entre los distintos accesorios yendo al menú <guimenuitem +>Opciones</guimenuitem +> y seleccionando <guimenuitem +>Configurar Noatun</guimenuitem +>. Vaya a la sección de <guilabel +>Accesorios</guilabel +> pulsando en el elemento de la lista correspondiente. Puede habilitar un accesorio pulsando en la casilla de verificación situada delante de su nombre. &noatun; necesita al menos un accesorio de interfaz de usuario, y requiere un accesorio de lista de reproducción para funcionar. </para> + +<sect1 id="milk-chocolate"> +<title +>Chocolate con leche</title> + +<para +>Chocolate con leche es un interfaz de usuario simple y pequeño. Los botones se comportan igual que en un reproductor de CDs, y el botón de <guiicon +>expulsar</guiicon +> abre la lista de reproducción. El botón en forma de <guiicon +>hoja con una cruz</guiicon +> elimina el elemento actual de la lista de reproducción, pero no lo borra del disco, y el botón en forma de <guiicon +>flecha</guiicon +> selecciona el método de repetición. Existe un menú disponible en todo momento, pulsando con el botón derecho del ratón en cualquier parte de la ventana.</para> + +</sect1> + +<sect1 id="young-hickory"> + +<title +>Nogal joven</title> + +<para +>Nogal joven es un accesorio para la bandeja del sistema de &kde;, normalmente la zona cercana al reloj.</para> + +<para +>Pulsando con el botón derecho del ratón aparecerá un pequeño menú, y pulsando con el botón izquierdo mostrará u ocultará la ventana con el interfaz de &noatun;. Nota: las listas de reproducción, por ejemplo, no se consideran parte de esta interfaz.</para> + +</sect1> + +<sect1 id="html-exporter"> +<title +>Exportador de listas de reproducción a <acronym +>HTML</acronym +></title> + +<para +>Este accesorio colocará su lista de reproducción en una tabla en <acronym +>HTML</acronym +>. Su página de preferencias le permitirá seleccionar los colores, la imagen de fondo, y habilitar el modo «Al pasar por encima», para que el color del enlace cambie cuando el ratón esté sobre el.</para> + +<para +>Tras configurar las opciones, la opción <guimenuitem +>Exportar lista de reproducción...</guimenuitem +> del menú <guimenu +>Acciones</guimenu +> abrirá un diálogo de archivos para que seleccione dónde desea guardar la salida. </para> + +</sect1> + +<sect1 id="kjofol-skin"> +<title +>Pieles de <application +>K-Jöfol</application +></title> + +<para +>El cargador de pieles de <application +>K-Jöfol</application +> de &noatun; es una reimplementación del programa de &Windows; del mismo nombre.</para> + +<para +>Desafortunadamente, la implementación de &noatun; tiene unas cuantas limitaciones. Las pieles deben estar descomprimidas en el disco para poderlas cargar.</para> + +<para +>Para instalar una piel, (en el formato ZIP de &Windows;), puede utilizar el instalador de pieles que se encuentra en el diálogo de preferencias de &noatun;.</para> + +<para +>Como algunas pieles no está empaquetadas correctamente y el instalador de pieles no puede adivinarlo todo, puede además seguir estas órdenes si ha fallado la instalación automática de alguna piel:</para> + +<screen +><prompt +>%</prompt +> <userinput +><command +>cd</command +> <filename class="directory" +>$KDEHOME/share/apps/noatun</filename +></userinput> +<prompt +>%</prompt +> <userinput +><command +>mkdir</command +> <option +>kjskins</option +></userinput +> (si es necesario) +<prompt +>%</prompt +> <userinput +><command +>cd</command +> <option +>kjskins</option +></userinput> +<prompt +>%</prompt +> <userinput +><command +>mkdir</command +> <option +>nueva_piel</option +> ; <command +>cd</command +> <replaceable +>nueva_piel</replaceable +></userinput> +<prompt +>%</prompt +> <userinput +><command +>unzip</command +> <replaceable +>/ruta/hasta/nueva_piel.zip</replaceable +></userinput +></screen> + +<para +>También puede crear sus propias pieles siguiendo el tutorial que encontrará en <ulink url="http://www.angelfire.com/mo/nequiem/tutorial.html" +>http://www.angelfire.com/mo/nequiem/tutorial.html</ulink +>. </para> + +</sect1> + +<sect1 id="splitplaylist"> +<title +>Lista de reproducción dividida</title> + +<para +>La lista de reproducción divida tiene un diseño simple, al estilo clásico. Haciendo una doble pulsación en una entrada la reproducirá (al igual que si la selecciona y pulsa <keycap +>Intro</keycap +>). Además, puede arrastrar archivos y &URL;s sobre ella. </para> + +<para +>Desde &kde; 3.0 la lista de reproducción dividida (<acronym +>SPL</acronym +>) almacena su información en formato &XML;, pero importa automáticamente la lista <acronym +>m3u</acronym +> si no existe el archivo &XML;. Esto significa que usted puede escribir el archivo m3u y borrar el &XML; para regenerar las listas automáticamente. </para> + +<para +>El nombre de lista de reproducción dividida puede resultar un poco confuso, ya que en realidad la lista no está dividida. Viene del diseño original (en los primeros tiempos de &noatun;), donde sí estaba dividida. </para> +</sect1> + +<sect1 id="winampskin"> +<title +>Pieles de Winamp</title> +<para +>Si utiliza la piel de <trademark +>Winamp</trademark +>, probablemente le resultará familiar. Pulsando en el tiempo, mostrará el tiempo restante o transcurrido. Si pulsa sobre el analizador de onda lo habilitará o deshabilitará. También puede hacer una doble pulsación en la barra de título para plegar la ventana. Pulsando con el botón <mousebutton +>derecho</mousebutton +> (o pulsando en el icono de la parte superior izquierda) se desplegará el menú estándar de &noatun;. </para> +<para +>Es posible instalar nuevas pieles, en <filename class="directory" +>$KDEHOME/share/apps/noatun/skins/winamp</filename +>, creando una carpeta para ellas, y descomprimiéndolas ahí. Los archivos de pieles de <trademark +>Winamp</trademark +> con la extensión <literal role="extension" +>.wsz</literal +> pueden ser tratados como archivos zip normales. De todas formas, debe renombrarlos primero, para descomprimirlos. </para> +</sect1> + +<sect1 id="metatag"> +<title +>Metatag</title> +<para +>Metatag es un conector que carga información sobre un archivo a través del uso de KFile, el mismo mecanismo que utiliza &konqueror; con los mensajes de ayuda que se muestran al pasar el puntero del ratón sobre un archivo. A parte de cargar información, soporta la edición a través del menú <guimenu +>Acciones</guimenu +>, en el submenú <guimenu +>Editor de etiquetas</guimenu +>. Soporta la modificación de etiquetas <acronym +>ID3</acronym +> y OggVorbis. También lee el ancho de banda utilizado por los archivos. </para> +</sect1> + +<sect1 id="keyz"> +<title +>Keyz</title> +<para +>Carsten Pfeiffer decidió acabar con la vieja costumbre en &noatun; de nombrar una extensión de la forma más inadecuada, como se demuestra en Chocolate con leche, Nogal joven y tantos otros. ¿Qué sentido tiene cambiar una S por una Z? Parece algo que los hablantes angloamericanos harían. </para> +<para +>De todas formas, sólo porque el nombre no sea original no significa que esto no sea un accesorio. De hecho, este permite asignar pulsaciones de teclas a las acciones de &noatun;. La auténtica belleza es que esas pulsaciones funcionan desde cualquier sitio, no sólo desde &noatun;. Así que parece que finalmente le vamos a encontrar una utilidad a los «teclados multimedia». </para> +</sect1> + +<sect1 id="ir-control"> +<title +>Control por infrarrojos</title> +<para +>Si tiene un mando a distancia en su ordenador (como los que vienen con las tarjetas de televisión con sintonizadores <trademark class="registered" +>Brooktree</trademark +>), y dicho mando está soportado por <ulink url="http://www.lirc.org" +>LIRC</ulink +>, esto debería de funcionar. Al igual que en el caso de Keyz, el nombre no es emocionante, pero el accesorio le permite asignar acciones a la pulsación de los botones. </para> +<para +>Para asignarle una acción a la pulsación de un botón, cargue el accesorio, vaya a la página Control por infrarrojos en la ventana de configuración de &noatun;. Seleccione la pulsación en la lista y después la acción que se debe ejecutar con el desplegable inferior. Si, en una acción como el control del volumen, desea que la pulsación se repita automáticamente y de forma repetida, marque la casilla y seleccione el intervalo entre las acciones. </para> +<para +>Si tiene una tarjeta de televisión, un buen truco es asignar el botón <guibutton +>Mute</guibutton +> a la acción de pausa, de forma que pueda enmudecer la televisión al mismo tiempo que activa la reproducción en &noatun; y viceversa, lo cual es muy útil para los periodos de publicidad. </para> +</sect1> +</chapter> + +<chapter id="questions-answers-and-tips"> + +<title +>Preguntas, respuestas, y sugerencias</title> + +<qandaset id="faq"> +<title +>Preguntas frecuentes</title> +<qandaentry> +<question> +<para +>La música salta a menudo cuando se mueven ventanas.</para> +</question> +<answer> +<para +>Puede aumentar el búfer de &arts; de la siguiente manera: </para +> + +<itemizedlist +> +<listitem +><para +>Inicie &kcontrol;.</para +></listitem> +<listitem +><para +>Vaya al grupo de <guilabel +>Sonido</guilabel +>.</para +></listitem +> +<listitem +><para +>Vaya a la sección <guilabel +>Servidor de sonido</guilabel +>.</para +></listitem +> +<listitem +><para +>Incremente el tiempo de respuesta—384ms suele ser suficiente en la mayoría de ordenadores.</para +></listitem +> +</itemizedlist +> + +<para +>También puede plantearse ejecutar el servidor de sonido con prioridad en tiempo real si el tiempo de respuesta no ayuda. Tenga en cuenta que esto puede provocar que el sistema se cuelgue. </para +> + +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>No puedo eliminar una lista de reproducción o una interfaz de usuario de la lista de accesorios.</para> +</question> +<answer> +<para +>&noatun; necesita al menos una interfaz de usuario cargada y una lista de reproducción, por lo que debe añadir una nueva interfaz de usuario antes de poder eliminar la antigua. Si añade una lista de reproducción, automáticamente se eliminará la antigua. </para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>¿Dónde puedo conseguir más accesorios?</para> +</question> +<answer> +<para +>Los desarrolladores externos que lo deseen pueden enviar sus propias extensiones a la <ulink url="http://noatun.kde.org/plugins/" +>página web de &noatun;</ulink +>, desde donde pueden ser descargadas por los usuarios. </para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>¿Cómo escribo un accesorio para &noatun;?</para> +</question> +<answer> +<para +>La documentación, una referencia de la <acronym +>API</acronym +>, y código fuente de ejemplo, están disponibles en la <ulink url="http://noatun.kde.org" +>página web de &noatun;</ulink +>. Además, siguiendo el espíritu del software libre, el código fuente de &noatun; y de todos las extensiones predeterminados está disponible. </para> +</answer> +</qandaentry> +</qandaset> +</chapter> + +<chapter id="credits-and-licenses"> +<title +>Créditos y licencias</title> + +<para +>Derechos de autor del programa. 2000-2002. Charles Samuels <email +>[email protected]</email +>.</para> + +<para +>Derechos de autor de la documentación. 2002. Charles Samuels <email +>[email protected]</email +>.</para> + +<para +>&noatun; ha llegado a usted gracias a las siguientes personas:</para> + +<itemizedlist> +<listitem> +<para +>Charles Samuels <email +>[email protected]</email +>.</para> +</listitem> +<listitem> +<para +>Neil Stevens <email +>[email protected]</email +>.</para> +</listitem> +<listitem> +<para +>Stefan Westerfeld <email +>[email protected]</email +>.</para> +</listitem> +<listitem> +<para +>Martin Vogt <email +>[email protected]</email +>.</para> +</listitem> +<listitem> +<para +>Malte Starostik <email +>[email protected]</email +>.</para> +</listitem> +<listitem> +<para +>Nikolas Zimmermann <email +>[email protected]</email +>.</para> +</listitem> +<listitem> +<para +>Stefan Schimanski <email +>[email protected]</email +>.</para> +</listitem> +</itemizedlist> +<para +>Traducido por Salvador Gimeno Zanón<email +>[email protected]</email +> y Miguel Revilla Rodríguez <email +>[email protected]</email +>.</para +> +&underFDL; &underBSDLicense; </chapter> + +<appendix id="installation"> +<title +>Instalación</title> + +<sect1 id="how-to-obtain-Noatun"> +<title +>Cómo obtener &noatun;</title> +&install.intro.documentation; </sect1> + +<sect1 id="requirements"> +<title +>Requerimientos</title> + +<para +>&noatun; requiere al menos un Pentium 200 con &Linux;, un PowerPC con &Linux; 2.4.1 o superior, o muchas otras plataformas. Se incluirá soporte para más plataformas en versiones posteriores.</para> + +<para +>Para que la plataforma sea fácilmente soportada, debe tener soporte para pthread y el sistema de sonido <acronym +>OSS</acronym +>, de todas formas, el sistema <acronym +>ALSA</acronym +> está soportado bajo &Linux;.</para> + +</sect1> + +<sect1 id="compilation-and-installation"> +<title +>Compilación e instalación</title> +&install.compile.documentation; <para +>Si encuentra algún problema, por favor informe de ello al autor en la dirección <email +>[email protected]</email +>.</para> + +<para +>Si tiene esta documentación, lo más probable es que ya haya compilado &noatun;</para> + +</sect1> + +</appendix> + +<glossary id="glossary"> +<title +>Glosario</title> + +<glossentry id="gloss-mc"> +<glossterm +>Chocolate con leche</glossterm +><glossdef> +<para +>Chocolate con leche es un accesorio de interfaz sencillo y minimalista. </para +></glossdef +></glossentry> + +<glossentry id="gloss-arts"> +<glossterm +>&arts;</glossterm +><glossdef> +<para +>&arts; es el sintetizador analógico en tiempo real. Un potente entorno de trabajo multimedia utilizado por &noatun;. </para +></glossdef +></glossentry> +<glossentry id="gloss-kj"> +<glossterm +>K-Jöfol</glossterm +><glossdef> +<para +>Esta extensión carga pieles utilizadas originalmente bajo el reproductor multimedia de &Windows; del mismo nombre. </para +></glossdef +></glossentry> + +<glossentry id="gloss-keyz"> +<glossterm +>Keyz</glossterm +><glossdef> +<para +>Keyz le permite asignar pulsaciones de teclas a acciones de &noatun; </para +></glossdef +></glossentry> +<glossentry id="gloss-young-hickory"> +<glossterm +>Nogal joven</glossterm +><glossdef> +<para +>Nogal joven es un conector para la bandeja del sistema. </para +></glossdef +></glossentry> +<glossentry id="gloss-kaiman"> +<glossterm +>Noatun</glossterm +><glossdef> +<para +>Kaiman es un accesorio que carga pieles del reproductor multimedia GQMPEG. Kaiman es también el predecesor de &noatun;, y fue distribuido con &kde; en la versión 2.0 de &kde;. Cuando &noatun; fue introducido en &kde; 2.1, el cargador de pieles de Kaiman pasó a ser un conector de &noatun;. </para +></glossdef +></glossentry> + +</glossary> + +&documentation.index; +</book> + |