diff options
Diffstat (limited to 'tde-i18n-pt/docs/tdemultimedia')
101 files changed, 29142 insertions, 0 deletions
diff --git a/tde-i18n-pt/docs/tdemultimedia/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/Makefile.in new file mode 100644 index 00000000000..c02b4d1dd6f --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. kio_audiocd juk kioslave artsbuilder noatun kaboodle kmid krec kmix kcontrol 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-pt/docs/tdemultimedia/artsbuilder/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/Makefile.in new file mode 100644 index 00000000000..62e0407a1f5 --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- 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/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 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) 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 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 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 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-pt/docs/tdemultimedia/artsbuilder/apis.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/apis.docbook new file mode 100644 index 00000000000..e7c21dfb17e --- /dev/null +++ b/tde-i18n-pt/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 Programação de Aplicações do &arts;</title> + +<sect1 id="api-overview"> +<title +>Introdução</title> +<para +>O aRts não é apenas um pedaço de 'software', também fornece uma variedade de APIs para uma variedade de fins. Nesta secção, será dada uma "ideia geral", uma breve apresentação do que essas APIs supostamente deverão fazer e como interagem. </para> + +<para +>Existe uma distinção importante a fazer: a maioria das APIs são <emphasis +>independentes da linguagem e da localização</emphasis +> dado que são especificadas no <emphasis +>mcopidl</emphasis +>. Isto é, você pode basicamente usar os serviços que elas oferecem a partir de qualquer linguagem, implementá-las em qualquer linguagem e não terá de se preocupar se está a falar com objectos locais ou remotos. Aqui está uma lista destes, em primeiro lugar: </para> + + +<variablelist> +<varlistentry> +<term +>core.idl</term> + <listitem +><para +>As definições básicas que formam o núcleo da funcionalidade do MCOP, como por exemplo o próprio protocolo, as definições do objecto, o mediador, o sistema de fluxo e assim por diante. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>artsflow.idl</term> + + <listitem +><para +>Estes contêm o sistema de fluxo que você irá usar para se ligar às sequências de áudio, a definição do <emphasis +>Arts::SynthModule</emphasis +> que é a base de qualquer interface que emita sequências multimédia e, finalmente, alguns objectos de áudio úteis </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>kmedia2.idl</term> + + + <listitem +><para +>Aqui está definido um objecto que poderá reproduzir conteúdos multimédia, o <emphasis +>Arts::PlayObject</emphasis +>. Os leitores multimédia como o 'noatun', o reprodutor multimédia serão capazes de reproduzir qualquer conteúdo multimédia para o qual exista um PlayObject. Por isso, faz sentido implementar os PlayObjects para os vários formatos (como o MP3, o vídeo MPEG, MIDI, WAV, ...) nessa base, e já existem alguns de facto. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>soundserver.idl</term> + + <listitem +><para +>Aqui está definida uma interface para o servidor de som do sistema, o 'artsd'. A interface chama-se <emphasis +>Arts::SoundServer</emphasis +>, e implementa alguma funcionalidade como a aceitação de sequências multimédia da rede, a reprodução de amostras, a criação de outros objectos personalizados do aRts, e assim por diante. A transparência da rede está implícita devido à utilização do MCOP (como em tudo o resto, de facto). </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>artsbuilder.idl</term> + <listitem +><para +>Este módulo define a funcionalidade básica do grafo de fluxo, isto é, a combinação de objectos mais simples de modo a criar objectos mais complexos, definindo para tal um grafo com eles. Ele define a interface básica <emphasis +>Arts::StructureDesc</emphasis +>, a <emphasis +>Arts::ModuleDesc</emphasis +> e a <emphasis +>Arts::PortDesc</emphasis +>, as quais contêm uma descrição de uma estrutura, um módulo e um porto. Existe também uma forma de obter uma "rede viva de objectos" com essas descrições de ligações e valores, usando uma 'factory' (fábrica). </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>artsmidi.idl</term> + + <listitem +><para +>Este módulo define a funcionalidade básica de MIDI, com os objectos que produzem os eventos do MIDI, o que é um evento do MIDI, um <emphasis +>Arts::MidiManager</emphasis +> para se ligar aos produtores e aos consumidores de eventos MIDI, e assim por diante. Como sempre, está implícita a transparência da rede. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>artsmodules.idl</term> + <listitem +><para +>Aqui existem vários filtros, osciladores, efeitos, atrasos adicionais, entre outros objectos, sendo tudo necessário para o processamento útil de sinal, e para criar instrumentos e efeitos complexos a partir destes blocos de construção básicos. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>artsgui.idl</term> + + <listitem +><para +>Este preocupa-se com os objectos visuais. Ele define o tipo básico <emphasis +> Arts::Widget</emphasis +> a partir do qual todos os módulos gráficos derivam. Isto irá produzir uma independência da plataforma e .... edição gráfica visual, assim como a noção de GUIs com capacidades de serialização. Do mesmo modo, dado que os elementos gráficos têm atributos normais, os seus valores poderão ser ligados com facilidade a alguns módulos de processamento de sinal (isto é, o valor de uma barra deslizante à frequência de corte de um filtro). Como sempre: transparência de rede. </para +></listitem> + +</varlistentry> + +</variablelist> +<para +>Sempre que possível, o próprio aRts está implementado usando a IDL. Por outro lado, existem algumas APIs <emphasis +>específicas da linguagem</emphasis +>, usando tanto C++ ou C normal. É normalmente aconselhado usar as interfaces IDL sempre que possível, usando as outras APIs quando for mesmo necessário. Aqui está uma lista das APIs específicas da linguagem: </para> + +<variablelist> + +<varlistentry> +<term +>KNotify, KAudioPlayer (incluídos na 'libtdecore')</term> + + <listitem +><para +>Estas são APIs do KDE de conveniência para os casos simples e comuns, onde você apenas deseja tocar uma amostra. As APIs são em C++ normal, optimizado para o Qt/KDE, e o mais simples possíveis. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>libartsc</term> + <listitem +><para +>Uma interface em C simples para o servidor de som. Muito útil ao transformar aplicações legadas. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>libmcop</term> + + <listitem +><para +>Aqui é onde acontece toda a mágica do MCOP. A biblioteca contém as noções básicas que precisa de saber para criar uma aplicação de MCOP simples, o 'dispatcher', os temporizadores, a gestão de E/S e os pormenores internos que fazem o protocolo do MCOP funcionar em si. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>libartsflow</term> + <listitem +><para +>Para além da implementação do 'artsflow.idl', contém alguns utilitários como a conversão da taxa de amostragem. </para +></listitem> + +</varlistentry> + +<varlistentry> +<term +>libqiomanager</term> + + <listitem +><para +>A integração do MCOP no ciclo de eventos do Qt, quando você cria aplicações do Qt com o MCOP. </para +></listitem> + +</varlistentry> + +</variablelist> + + + +</sect1> +<sect1 id="knotify"> +<title +>knotify</title> +<para +>Ainda não escrito </para> +</sect1> + +<sect1 id="kaudioplayer"> +<title +>kaudioplayer</title> +<para +>Ainda não escrito </para> +</sect1> + +<sect1 id="libkmid"> +<title +>libkmid</title> +<para +>Ainda não escrito </para> +</sect1> + +<sect1 id="kmedia2"> +<title +>kmedia2</title> +<para +>Ainda não escrito </para> +</sect1> + +<sect1 id="soundserver"> +<title +>servidor de som</title> +<para +>Ainda não escrito </para> +</sect1> + +<sect1 id="artsflow"> +<title +>artsflow</title> +<para +>Ainda não escrito </para> +</sect1> + +<sect1 id="capi"> +<title +><acronym +>API</acronym +> do C</title> + +<sect2 id="capiintro"> +<title +>Introdução</title> + +<para +>A <acronym +>API</acronym +> de C do &arts; foi desenhada para tornar simples a criação e a transformação de aplicações simples de C para tirarem partido do servidor de som &arts;. Ele contém algumas funcionalidades de difusão (o envio de sequências de amostras para o <application +>artsd</application +>), quer bloqueantes quer não-bloqueantes). Para a maioria das aplicações, você simplesmente irá retirar as poucas chamadas de sistema que lidam com o seu dispositivo de áudio e substitui-las com as chamadas de &arts; apropriadas.</para> + +<para +>Foram feitas duas passagens como prova da teoria: o <application +>mpg123</application +> e o <application +>quake</application +>. Você poderá obter as correcções <ulink url="http://space.twc.de/~stefan/kde/download/artsc-patches.tar.gz" +>aqui</ulink +>. Sinta-se à vontade para enviar as suas próprias alterações para os responsáveis pelo &arts; ou pelos pacotes de 'software' multimédia, de modo a que possam integrar o suporte do &arts; no seu código.</para> + +</sect2> + +<sect2 id="capiwalkthru"> +<title +>Percurso Rápido</title> + +<para +>O envio de áudio para o servidor de som com a <acronym +>API</acronym +> é bastante simples:</para> +<procedure> +<step +><para +>incluir o ficheiro da API usando o <userinput +>#include <artsc.h></userinput +></para +></step> +<step +><para +>inicializar a <acronym +>API</acronym +> com o <function +>arts_init()</function +></para +></step> +<step +><para +>criar um canal com o <function +>arts_play_stream()</function +></para +></step> +<step +><para +>configurar os parâmetros específicos com o <function +>arts_stream_set()</function +></para +></step> +<step +><para +>escrever os dados das amostras para o canal com o <function +>arts_write()</function +></para +></step> +<step +><para +>fechar o canal com o <function +>arts_close_stream()</function +></para +></step> +<step +><para +>libertar a <acronym +>API</acronym +> com o <function +>arts_free()</function +></para +></step> +</procedure> + +<para +>Aqui está um pequeno programa de exemplo que ilustra isto:</para> + +<programlisting +>#include <stdio.h> +#include <artsc.h> +int main() +{ + arts_stream_t canal; + char dados[8192]; + int bytes; + int erro; + + erro = arts_init(); + if (erro < 0) + { + fprintf(stderr, "erro do arts_init: %s\n", arts_error_text(erro)); + return 1; + } + + canal = arts_play_stream(44100, 16, 2, "testeartsc"); + + while((bytes = fread(dados, 1, 8192, stdin)) > 0) + { + erro = arts_write(canal, dados, bytes); + if(erro < 0) + { + fprintf(stderr, "erro do arts_write: %s\n", arts_error_text(erro)); + return 1; + } + } + + arts_close_stream(canal); + arts_free(); + + return 0; +} +</programlisting> +</sect2> + +<sect2 id="capiartscconfig"> +<title +>Compilar e Gerar o Executável: <application +>artsc-config</application +></title> + +<para +>Para compilar e gerar os binários com facilidade, usando a <acronym +>API</acronym +> de C do &arts;, o utilitário <application +>artsc-config</application +> é fornecido e indica quais as bibliotecas que você precisa para compilar e onde se encontram os ficheiros de inclusão. É invocado com o comando</para> + +<screen +><userinput +><command +>artsc-config</command +> <option +>--libs</option +></userinput +> +</screen> + +<para +>para saber quais as bibliotecas e </para> + +<screen +><userinput +><command +>artsc-config</command +> <option +>--cflags</option +></userinput +> +</screen> + +<para +>para saber quais as opções adicionais do compilador de C. O exemplo acima poderia ter sido compilado com a linha de comandos:</para> + +<screen +><userinput +><command +>cc</command +> <option +>-o testeartsc testeartsc.c `artsc-config --cflags` `artsc-config --libs`</option +></userinput> + +<userinput +><command +>cc</command +> <option +>-o testeartsc</option +> <option +>testeartsc.c</option +> <option +>`artsc-config --cflags`</option +> <option +>`artsc-config --libs`</option +></userinput +> +</screen> + +</sect2> + +<sect2 id="c-api-reference"> +<title +>Referência das Bibliotecas</title> + +<para +>[TODO: gerar a documentação do artsc.h com o 'kdoc'] </para> + +</sect2> + +</sect1> +</chapter> diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/artsbuilder.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/artsbuilder.docbook new file mode 100644 index 00000000000..fd49688924d --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/artsbuilder.docbook @@ -0,0 +1,917 @@ +<chapter id="artsbuilder"> +<title +>&arts-builder;</title> + +<sect1 id="overview"> +<title +>Introdução</title> + +<para +>Primeiro que tudo, ao tentar correr o &arts-builder; , você deverá correr também o servidor de som (o &artsd;). Normalmente, quando você usa o &kde; 2.1, este já deverá ser o caso. Se não for, você poderá configurar o arranque automático do servidor de som no &kcontrol; em <menuchoice +><guilabel +>Som</guilabel +><guilabel +>Servidor de Som</guilabel +></menuchoice +>. </para> + +<para +>Quando você está a executar o &arts;, ele corre sempre módulos pequenos. O &arts-builder; é uma ferramenta para criar estruturas novas a partir de pequenos módulos interligados. Você simplesmente carrega os módulos para dentro da grelha. Para o fazer, escolha-os no menu <guimenu +>Módulos</guimenu +>, e carregue então algures no avião verde-e-cinzento. </para> + +<para +>Os módulos normalmente têm portos (onde normalmente entram e saem os sinais de áudio). Para ligar dois portos, carregue no primeiro, o que normalmente faz com que ele fique laranja, e carregue depois no segundo. Você poderá ligar apenas um porto de entrada (na parte de cima) com um porto de saída (na parte inferior de um módulo). Se você quiser atribuir um valor fixo a um porto (ou desligá-lo), faça duplo-click no mesmo. </para> + +</sect1> + +<sect1 id="artsbuilder-tutorial"> +<title +>Tutorial</title> + +<sect2 id="step-1"> +<title +>Passo 1</title> + +<para +>Inicie o &arts-builder;. </para> + +<para +>Você precisa de um módulo Synth_AMAN_PLAY para ouvir a saída que está a criar. Por isso crie um módulo Synth_AMAN_PLAY, seleccionando-o em <menuchoice +><guimenu +>Módulos</guimenu +> <guisubmenu +>Síntese</guisubmenu +> <guisubmenu +>E/S de Som</guisubmenu +> <guisubmenu +>Synth_AMAN_PLAY</guisubmenu +></menuchoice +> e carregue no espaço em branco do módulo. Coloque-o por baixo da quinta linha ou algo do género, porque serão adicionadas aqui algumas coisas. </para> + +<para +>O módulo irá ter um parâmetro <parameter +>title</parameter +> ou título (o porto do lado esquerdo), um <parameter +>autoRestoreID</parameter +> (ao lado do porto do lado esquerdo) para o encontrar. Para os preencher, faça duplo-click nesses portos, seleccione um valor constante e escreva <userinput +>tutorial</userinput +> no campo de texto. Carregue em <guibutton +>OK</guibutton +> para aplicar. </para> + +<para +>Seleccione <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Executar a estrutura</guimenuitem +> </menuchoice +>. Você não irá ouvir absolutamente nada. O módulo de reprodução ainda necessita de uma entrada... ;) Se você tiver 'ouvido' o silêncio um pouco, carregue em <guibutton +>OK</guibutton +> e vá para o Passo 2 </para> +</sect2> + +<sect2 id="step-2"> +<title +>Passo 2</title> + +<para +>Crie um módulo Synth_WAVE_SIN (em <menuchoice +> <guimenu +>Módulos</guimenu +> <guimenuitem +>Síntese</guimenuitem +> <guimenuitem +>Formas de onda</guimenuitem +></menuchoice +>) e coloque-o por cima do módulo Synth_AMAN_PLAY. (Deixe um espaço de uma linha entre eles). </para> + +<para +>Como poderá ver, ele produz algum resultado, mas necessita de um <guilabel +>pos</guilabel +> como entrada. Primeiro, vai-se ligar a saída ao altifalante. Carregue no porto <guilabel +>out</guilabel +> (saída) do módulo Synth_WAVE_SIN e depois no porto <guilabel +>left</guilabel +> (esquerda) do Synth_AMAN_PLAY. Pronto, você acabou de ligar dois módulos. </para> + +<para +>Todos os osciladores no &arts; não precisam de uma frequência à entrada, mas si de uma posição na onda. A posição deverá ser entre 0 e 1, o que se mapeia num objecto normal do Synth_WAVE_SIN no intervalo 0..2*pi. Para gerar os valores oscilantes para uma frequência, é usado um módulo Synth_FREQUENCY. </para> + +<para +>Crie um módulo Synth_FREQUENCY (em <menuchoice +> <guimenu +>Módulos</guimenu +> <guimenu +>Síntese</guimenu +> <guimenu +>Oscilação & Modulação</guimenu +> </menuchoice +>) e ligue a sua saída <quote +>pos</quote +> na entrada <quote +>pos</quote +> do seu Synth_WAVE_SIN. Indique o porto 'frequency' (frequência) do gerador FREQUENCY com um valor constante 440. </para> + + +<para +>Seleccione o <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Executar a estrutura</guimenuitem +></menuchoice +>. Irá ouvir uma onda sinusoidal de 440 Hz num dos seus altifalantes. Se você a tiver ouvido durante algum tempo, carregue em <guibutton +>OK</guibutton +> e vá para o Passo 3. </para> + +</sect2> + +<sect2 id="step-3"> +<title +>Passo 3</title> + +<para +>OK, seria melhor se você ouvir a onda sinusoidal em ambos os altifalantes. Ligue o porto 'right' (direita) do Synth_PLAY ao 'outvalue' (saída) do Synth_WAVE_SIN. </para> + +<para +>Crie um objecto Synth_SEQUENCE (em <menuchoice +><guimenu +>Módulos</guimenu +> <guisubmenu +>Síntese</guisubmenu +><guisubmenu +>MIDI & Sequenciação</guisubmenu +></menuchoice +>). Dever-se-á encontrar no topo do ecrã. Se precisar de mais espaço, você poderá mover os outros módulos, seleccionando-os (para seleccionar vários módulos use o &Shift;) e arrastando-os. </para> + +<para +>Agora ligue a saída 'frequency' (frequência) do Synth_SEQUENCE à entrada 'frequency' do módulo Synth_FREQUENCY. Depois, indique a velocidade da sequência como um valor constante 0,13 (o 'speed' ou velocidade é o porto mais à esquerda). </para> + +<para +>Agora vá ao porto mais à direita (o 'sequence' ou sequência) do Synth_SEQUENCE e escreva como valor constante <userinput +>A-3;C-4;E-4;C-4;</userinput +>; isto corresponde a uma sequência. Poderá ver mais sobre isto na Referência do Módulo. </para> + +<note> +<para +>O Synth_SEQUENCE <emphasis +>necessita</emphasis +> mesmo de uma sequência e da sua velocidade. Sem isto, você irá obter provavelmente alguns estoiros. </para> +</note> + +<para +>Seleccione o <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Executar a Estrutura</guimenuitem +></menuchoice +>. Você irá ver uma sequência bonita a tocar. Se gostou da sensação, carregue em <guibutton +>OK</guibutton +> e vá para o Passo 4. </para> +</sect2> + +<sect2 id="step-4"> +<title +>Passo 4</title> + +<para +>Crie um módulo Synth_PSCALE (em <menuchoice +><guimenu +>Módulos</guimenu +> <guisubmenu +>Síntese</guisubmenu +> <guisubmenu +>Envelopes</guisubmenu +> </menuchoice +>). Desligue o 'outvalue' (saída) da onda sinusoidal, fazendo duplo-click nela e escolher a opção <guilabel +>não ligado</guilabel +>. Ligue </para> + +<orderedlist +><listitem> +<para +>O valor de saída do SIN ao valor de entrada do PSCALE</para> +</listitem> +<listitem> +<para +>O valor de saída do PSCALE à esquerda do AMAN_PLAY</para> +</listitem> +<listitem> +<para +>O valor de saída do PSCALE à direita do AMAN_PLAY</para> +</listitem> +<listitem> +<para +>A posição do SEQUENCE à posição do PSCALE</para> +</listitem> +</orderedlist> + +<para +>Finalmente, configure o topo do PSCALE para um valor qualquer, por exemplo 0,1. </para> + +<para +>Como é que funciona então: o Synth_SEQUENCE dá informações adicionais sobre a posição da nota que está a tocar de momento, onde o 0 significa que começou agora e 1 significa que terminou. O módulo Synth_PSCALE irá ajustar o facto de escala do canal de áudio que é passado por ele, desde um volume 0 (silêncio) até 1 (volume original), voltando outra vez a 0 (silêncio), de acordo com a posição. A posição onde o pico deverá ocorrer poderá ser indicada no 'pos'. Um valor igual a 0,1 significa que, depois de ter tocado 10% da nota, o volume terá atingido o seu máximo, começando a decair a partir daí. </para> + + +<para +>Seleccione <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Executar a Estrutura</guimenuitem +></menuchoice +>. Você irá ouvir uma sequência bonita a tostou da situação, carregue em <guibutton +>OK</guibutton +> e vá para o Passo 5. </para> + +</sect2> + +<sect2 id="step-5-starting-to-beam-data-around"> +<title +>Passo 5: Começar a emitir os dados ;)</title> + +<para +>Inicie outro &arts-builder;</para> + +<para +>Coloque um Synth_AMAN_PLAY nele e configure-o para um nome aceitável. Coloque um Synth_BUS_DOWNLINK nele e:</para> + +<orderedlist> +<listitem> +<para +>Configure o barramento do Synth_BUS_DOWNLINK para áudio (isto é apenas um nome, chame-lhe 'manel' se quiser) </para> +</listitem> +<listitem> +<para +>Ligue a esquerda do Synth_BUS_DOWNLINK à esquerda do Synth_AMAN_PLAY </para> +</listitem> +<listitem> +<para +>Ligue a direita do Synth_BUS_DOWNLINK à direita do Synth_AMAN_PLAY </para> +</listitem> +</orderedlist> + +<para +>Comece a executar a estrutura. Como seria de esperar, não ouve nada, ... ainda. </para> + +<para +>Volte à estrutura com as coisas do Synth_WAVE_SIN e substitua o módulo Synth_AMAN_PLAY module por um Synth_BUS_UPLINK, configurando o seu nome para 'áudio' (ou 'manel', se preferir); os módulos poderão ser removidos se os seleccionar e escolher <menuchoice +><guimenu +>Editar</guimenu +> <guimenuitem +>Remover</guimenuitem +></menuchoice +> no menu (ou carregando na tecla <keycap +>Del</keycap +>). </para> + +<para +>Carregue em <menuchoice +><guimenu +>Ficheiro</guimenu +> <guilabel +>Executar a estrutura</guilabel +></menuchoice +>. Irá ouvir a sequência com as notas em escala, transportadas no barramento. </para> + +<para +>Se quiser saber porque é que algo como isto poderá de facto ser útil, carregue em <guibutton +>OK</guibutton +> (no &arts-builder; que está a executar o bloco do Synth_SEQUENCE; você poderá deixar o outro a correr) e ir para o Passo 6. </para> +</sect2> + +<sect2 id="step-6-beaming-for-advanced-users"> +<title +>Passo 6: Apontar para utilizadores avançados</title> + +<para +>Escolha a estrutura <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Mudar o nome</guimenuitem +> </menuchoice +> no menu do 'artsbuilder' que contém as coisas do Synth_SEQUENCE, chamando-lhe de 'tutorial'. Carregue em <guibutton +>OK</guibutton +>. </para> + +<para +>Seleccione <menuchoice +><guimenu +>Ficheiro</guimenu +> <guimenuitem +>Gravar</guimenuitem +> </menuchoice +> </para> + +<para +>Inicie ainda mais outro &arts-builder; e escolha <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Abrir</guimenuitem +> </menuchoice +>, e carregar o tutorial de novo. </para> + +<para +>Agora poderá seleccionar <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Executar a estrutura</guimenuitem +> </menuchoice +> em ambos os &arts-builder;s que têm estrutura. Você irá ouvir agora duas vezes a mesma coisa. Dependendo da altura em que os inicia, irá soar melhor ou pior. </para> + +<para +>Outra coisa boa para fazer nesta altura é: iniciar o &noatun; e tocar um <literal role="extension" +>mp3</literal +> qualquer. Inicie o &artscontrol;. Vá a <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Ver o gestor de áudio</guimenuitem +></menuchoice +>. O que irá ver será o &noatun; e a sua estrutura de reprodução <quote +>tutorial</quote +> a tocar algo. Uma coisa interessante que poderá fazer é o seguinte: faça duplo-click no &noatun;. Irá agora obter uma lista com os barramentos disponíveis. Verá também que poderá indicar ao &noatun; para enviar a sua saída através do barramento de áudio que a sua estrutura do tutorial oferece. </para> +</sect2> + +<sect2 id="step-7-midi-synthesis"> +<title +>Passo 7: Síntese MIDI</title> + +<para +>Finalmente, você deverá agora ser capaz de transformar a sua onda sinusoidal num instrumento real. Só faz sentido se você tiver algo útil que possa enviar eventos de &MIDI; para o &arts;. Será descrito aqui como você poderá usar um teclado externo qualquer, mas uma solução de sequenciação MIDI como o &brahms; irá funcionar da mesma forma. </para> + +<para +>Primeiro que tudo, limpe o seu ecrã até que você tenha apenas um &arts-builder; com a estrutura da onda sinusoidal aberta (mas não em execução). De seguida, vá três vezes a <menuchoice +><guimenu +>Portos</guimenu +> <guisubmenu +>Criar sinal de áudio IN</guisubmenu +></menuchoice +>, e outras três a <menuchoice +><guimenu +>Portos</guimenu +> <guisubmenu +>Criar sinal de áudio OUT</guisubmenu +></menuchoice +>. Coloque esses portos algures. </para> + +<para +>Finalmente, vá a <menuchoice +><guimenu +>Portos</guimenu +> <guilabel +>Mudar as posições e nomes</guilabel +></menuchoice +> e chame aos portos 'frequency' (frequência), 'velocity' (velocidade), 'pressed' (carregado), 'left' (esquerdo), 'right' (direito), 'done' (pronto). </para> + +<para +>Finalmente, você poderá remover o módulo Synth_SEQUENCE e ligar o porto de entrada 'frequency' (frequência) da estrutura ao porto 'frequency' do Synth_FREQUENCY. Hm... Mas o que fazer com o 'pos'?</para +> <para +>Não existe isso, porque não há nenhum algoritmo no mundo onde você possa prever quando é que o utilizador solta a nota que acabou de carregar no teclado MIDI. Por isso, existe um parâmetro 'pressed' (carregado) que indica se o utilizador ainda tem a tecla pressionada ou não ('pressed' = 1: a tecla ainda está carregada, 'pressed' = 0: tecla solta) </para> + +<para +>Isto significa que o objecto Synth_PSCALE também precisa de ser substituído agora. Ligue um Synth_ENVELOPE_ADSR em alternativa (em <menuchoice +><guimenu +>Módulos</guimenu +> <guisubmenu +>Síntese</guisubmenu +> <guisubmenu +>Envelopes</guisubmenu +> </menuchoice +>). Ligue: </para> + +<orderedlist> +<listitem> +<para +>A entrada 'pressed' da estrutura ao 'active' (activo) do ADSR</para> +</listitem> +<listitem> +<para +>O valor de saída do SIN ao valor de entrada do PSCALE</para> +</listitem> +<listitem> +<para +>O valor de saída do ADSR à saída 'left' (esquerda) da estrutura</para> +</listitem +><listitem> +<para +>O valor de saída do ADSR à saída 'right' (direita) da estrutura</para> +</listitem> +</orderedlist> + +<para +>Configure os parâmetros 'attack' (ataque) igual a 0,1, 'decay' (decaimento) igual a 0,2, 'sustain' (sustentação) igual a 0,7 e 'release' (soltura) igual a 0,1. </para> + +<para +>Outra coisa em que é preciso pensar é que a estrutura do instrumento precisa de saber de alguma forma quando é que está pronta para tocar e quando poderá ser limpa, porque caso contrário nunca seria interrompida, mesmo que a nota tivesse sido solta. Felizmente, o envelope do ADSR sabes quando não há mais nada para se ouvir, dado que ele iguala o sinal a zero nalgum ponto em que a nota foi solta. </para> + +<para +>Isto é indicado ao pôr a saída 'done' (pronto) igual a 1. Por isso, ligue isto à saída 'done' da estrutura. A mesma será removida logo que o 'done' passe a 1. </para> + +<para +>Mude o nome da sua estrutura para 'instrument_tutorial' (em <menuchoice +><guimenu +> Ficheiro</guimenu +> <guimenuitem +>Mudar o nome da estrutura</guimenuitem +></menuchoice +>. De seguida, grave-a usando o Gravar Como (o nome por omissão que é oferecido deverá ser agora igual a 'instrument_tutorial').</para +><para +>Inicie o 'artscontrol' e vá a <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Gestor de MIDI</guimenuitem +></menuchoice +>, escolhendo depois a opção <menuchoice +><guimenu +>Adicionar</guimenu +><guimenuitem +>Saída MIDI de Síntese do aRts</guimenuitem +></menuchoice +>. Finalmente, você deverá ser capaz de seleccionar o seu instrumento de tutorial aqui. </para> + +<para +>Abra um terminal e escreva <userinput +><command +>midisend</command +></userinput +>. Você irá ver que o <command +>midisend</command +> e o instrumento estão agora listados no gestor de &MIDI; do &arts;. Depois de seleccionar ambos e de carregar em <guibutton +>Ligar</guibutton +>, é tudo. Pegue no seu teclado e comece a tocar (obviamente, terá de estar ligado ao seu computador). </para> +</sect2> + +<sect2 id="suggestions"> +<title +>Sugestões</title> + +<para +>Agora você deverá ser capaz de trabalhar com o &arts;. Ficam aqui algumas dicas que você poderá tentar para melhorar com as suas estruturas: </para> + +<itemizedlist> +<listitem> +<para +>Tente usar outras coisas para além de uma onda sinusoidal. Quando ligar uma onda triangular, você irá pensar que o som não é grande coisa. Mas tente adicionar um filtro SHELVE_CUTOFF logo a seguir à onda triangular para cortar as frequências acima de uma dada frequência (tente algo do género de 1000 Hz, ou mesmo duas vezes a frequência de entrada ou igual à frequência de entrada+200Hz, ou qualquer outra coisa do género). </para> +</listitem> +<listitem> +<para +>Tente usar mais do que um oscilador. O Synth_XFADE poderá ser usado para misturar dois sinais; use por outro lado o Synth_ADD para os adicionar. </para> +</listitem> +<listitem> +<para +>Tente configurar as frequências dos osciladores para valores diferentes; isto dará umas oscilações engraçadas. </para> +</listitem> +<listitem> +<para +>Experimente com mais do que um envelope. </para> +</listitem> +<listitem> +<para +>Tente sintetizar os instrumentos com resultados diferentes do lado esquerdo e do direito. </para> +</listitem> +<listitem> +<para +>Tente fazer o pós-processamento depois de sair da ligação de recepção do barramento. Você poderá misturar, por exemplo, uma versão atrasada do sinal ao sinal original para obter um efeito de eco. </para> +</listitem> +<listitem> +<para +>Tente usar a opção 'velocity' (velocidade), a qual corresponde à força com que a nota foi carregada, e poderá também dizer 'volume'). O efeito especial consiste em não só modificar o volume do sinal resultante, mas também o som do instrumento (como por exemplo a frequência de corte). </para> +</listitem> +<listitem> +<para +>...</para> +</listitem> +</itemizedlist> + +<para +>Se você criou algo engraçado, pense por favor em fornecê-lo à página Web do &arts; ou para ser incluído na próxima versão. </para> +</sect2> + +</sect1> + +<sect1 id="artsbuilder-examples"> +<title +>Exemplos</title> + +<para +>O &arts-builder; vem com vários exemplos, os quais poderão ser acedidos através da opção <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Abrir um Exemplo...</guimenuitem +> </menuchoice +>. Alguns deles estão na sua pasta correspondente, enquanto que outros (os quais não funcionam por uma razão qualquer na versão actual) são deixados na pasta 'todo'. </para> +<para +>Os exemplos caem em várias categorias: </para> + +<itemizedlist> +<listitem> +<para +>Os exemplos autónomos que ilustram como usar cada um dos módulos incorporados do 'arts' (chamados <filename +>example_*.arts</filename +>). Estes tipicamente enviam um resultado qualquer para uma placa de som. </para> +</listitem> + +<listitem> +<para +>Os instrumentos que são criados a partir de módulos de nível mais baixo (chamados de <filename +>instrument_*.arts</filename +>). Estes seguem uma convenção normal para os portos de entrada e saída para que possam ser usados no gestor de &MIDI; no &artscontrol;. </para> +</listitem> + +<listitem> +<para +>Os modelos para criar novos módulos (denominados por <filename +>template_*.arts</filename +>). </para> +</listitem> + +<listitem> +<para +>Os efeitos que poderão ser usados como blocos de construção reutilizáveis (chamados de <filename +>effect_*.arts</filename +>) [ tudo no 'todo' ] </para> +</listitem> + +<listitem> +<para +>Os elementos de mistura usados para criar mesas de mistura, incluindo os controlos gráficos (chamados de <filename +>mixer_element_*.arts</filename +>). [ tudo no 'todo' ] </para> +</listitem> + +<listitem> +<para +>Módulos diversos que não se encaixam em nenhuma das categorias acima. </para> +</listitem> +</itemizedlist> + +<variablelist> +<title +>Descrição Detalhada de Cada Módulo:</title> +<varlistentry> +<term +><filename +>example_stereo_beep.arts</filename +></term> +<listitem> +<para +>Gera uma onda sinusoidal de 440Hz no canal esquerdo e uma onda sinusoidal no canal direito, enviando o resultado para a saída da placa de som. Isto é referenciado na documentação do &arts;. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_sine.arts</filename +></term> +<listitem> +<para +>Gera uma onda sinusoidal de 440 Hx. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_pulse.arts</filename +></term> +<listitem> +<para +>Gera uma onda de impulsos de 440 Hz com um tempo de actividade de 20%. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_softsaw.arts</filename +></term> +<listitem> +<para +>Gera uma onda de dente-de-serra de 440 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_square.arts</filename +></term> +<listitem> +<para +>Gera uma onda quadrada de 440 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_tri.arts</filename +></term> +<listitem> +<para +>Gera uma onda triangular de 440 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_noise.arts</filename +></term> +<listitem> +<para +>Gera 'ruído branco'. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_dtmf1.arts</filename +></term> +<listitem> +<para +>Gera um tom duplo, produzindo para tal ondas sinusoidais de 697 e 1209 Hz, ajustando a escala para 0,5 e adicionando-as em conjunto. Isto é o tom DTMF para o número "1" num teclado de telefone. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_atan_saturate.arts</filename +></term> +<listitem> +<para +>Corre uma onda triangular com o filtro de saturação 'atan' (arco-tangente). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_autopanner.arts</filename +></term> +<listitem> +<para +>Usa um deslocador automático para deslocar uma onda sinusoidal de 400 Hz entre os altifalantes esquerdo e direito a um ritmo de 2 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_brickwall.arts</filename +></term> +<listitem> +<para +>Ajusta a escala de uma onda sinusoidal por um factor de 5 e passa-a por um limitador. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_bus.arts</filename +></term> +<listitem> +<para +>Recebe de um barramento chamado <quote +>Bus</quote +> (Barramento) e envia para o barramento <quote +>out_soundcard</quote +> (saída da placa de som) com os canais esquerdo e direito invertidos. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_cdelay.arts</filename +></term> +<listitem> +<para +>Recebe de um barramento chamado <quote +>Delay</quote +> (Atraso), envia o canal direito através de um atraso de 0,5 segundos e o esquerdo sem alterações. Você poderá usar o &artscontrol; para ligar o efeito a um reprodutor de som e observar os resultados. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_delay.arts</filename +></term> +<listitem> +<para +>Este é o mesmo que o <filename +>example_cdelay.arts</filename +> mas usando o efeito de atraso. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_capture_wav.arts</filename +></term> +<listitem> +<para +>Isto usa o Synth_CAPTURE_WAV para gravar uma onda sinusoidal de 400 Hz como um ficheiro WAV. Execute o módulo durante uns segundos e examine depois o ficheiro criado em <filename class="directory" +>/tmp</filename +>. Você poderá tocar o ficheiro com um leitor multimédia como o <application +>noatun</application +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_data.arts</filename +></term> +<listitem> +<para +>Isto usa o módulo Data (Dados) para gerar uma sequência constante com o valor <quote +>3</quote +> e envia-a para um módulo Debug (Depuração) que o mostra periodicamente. Também contém um módulo Nil (Nada), que ilustra como poderá ser usado para não fazer absolutamente nada. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_adsr.arts</filename +></term> +<listitem> +<para +>Mostra como criar um único som de um instrumento com o módulo 'Envelope Adsr' (ADSR do Envelope), despoletado repetidamente por uma onda quadrada. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_fm.arts</filename +></term> +<listitem> +<para +>Isto usa o módulo de Fonte FM para gerar uma onda sinusoidal de 440 Hz que é modulada na frequência a uma taxa de 5 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_freeverb.arts</filename +></term> +<listitem> +<para +>Isto liga o efeito do Freeverb a partir do canal de recepção de um barramento a um canal de envio de outro barramento. Você poderá usar o &artscontrol; para ligar o efeito a um leitor de áudio e observar os resultados. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_flanger.arts</filename +></term> +<listitem> +<para +>Isto implementa um efeito simples de 'flanger' (não parece funcionar ainda, no entanto). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_moog.arts</filename +></term> +<listitem> +<para +>Esta estrutura combina os dois canais de um barramento num só, passando-o através do filtro VCF Moog, e envia o resultado para o barramento 'out_soundcard'. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_pitch_shift.arts</filename +></term> +<listitem> +<para +>Esta estrutura passa o canal esquerdo dos dados da placa de som através do efeito 'Pitch Shift' (Desvio de Tom). Ajuste o parâmetro 'speed' (velocidade) para variar o efeito. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_rc.arts</filename +></term> +<listitem> +<para +>Esta estrutura passa um gerador de 'ruído branco' através de um filtro RC para a placa de som. Ao ver no Osciloscópio de FFT do &artscontrol;, você poderá ver como isto varia numa forma de onda de ruído não filtrada. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_sequence.arts</filename +></term> +<listitem> +<para +>Isto demonstra o módulo Sequence (sequência), tocando para tal uma sequência de notas. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_shelve_cutoff.arts</filename +></term> +<listitem> +<para +>Esta estrutura passa um gerador de 'ruído branco' através de um filtro 'Shelve Cutoff' para a placa de som. Ao ver no Osciloscópio de FFT do &artscontrol;, você poderá ver como isto varia numa forma de onda de ruído não filtrada. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_equalizer.arts</filename +></term> +<listitem> +<para +>Isto demonstra o módulo 'Std_Equalizer'. Ele aumenta de 6 dB as frequências altas e baixas. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_tremolo.arts</filename +></term> +<listitem> +<para +>Isto demonstra o efeito Tremolo. Ele modula os canais esquerdo e direito usando um tremolo de 10 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_xfade.arts</filename +></term> +<listitem> +<para +>Este exemplo mistura ondas sinusoidais de 440 e 880 Hz com um misturador cruzado. Ajuste o valor da percentagem do misturador de -1 até 1 para controlar a mistura dos dois sinais. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_pscale.arts</filename +></term> +<listitem> +<para +>Isto ilustra o módulo do Pscale (não é certo se este será um exemplo compreensível). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><filename +>example_play_wav.arts</filename +></term> +<listitem> +<para +>Isto ilustra o módulo 'Play Wave' (Tocar um WAVE). Você terá de indicar a localização completa de um ficheiro <literal role="extension" +>.wav</literal +> como valor do parâmetro 'filename' (nome do ficheiro). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>example_multi_add.arts</term> +<listitem> +<para +>Isto mostra o módulo Multi Add (Adição Múltipla), o qual aceita um número qualquer de entradas. Ele soma três módulos de dados que produzem entradas de 1, 2 e 3, mostrando depois o resultado 6. </para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> +</chapter> diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/detail.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/detail.docbook new file mode 100644 index 00000000000..1f4d3e43f63 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/detail.docbook @@ -0,0 +1,1388 @@ +<!-- <?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 +>O &arts; em Detalhe</title> + +<sect1 id="architecture"> +<title +>Arquitectura</title> + +<mediaobject> +<imageobject> +<imagedata fileref="arts-structure.png" format="PNG"/> +</imageobject> +<textobject +><phrase +>A estrutura do &arts;.</phrase +></textobject> +</mediaobject> +</sect1> + +<sect1 id="modules-ports"> +<title +>Módulos & Portos</title> + +<para +>A ideia do &arts; é que a síntese pode ser feita com módulos pequenos que só fazem uma coisa, voltando a combiná-los depois em estruturas complexas. Os pequenos módulos normalmente têm entradas, onde poderão obter alguns sinais ou parâmetros, e saídas, onde produzirão alguns sinais. </para> + +<para +>Um módulo (o Synth_ADD), por exemplo, apanha simplesmente os dois sinais à entrada e adiciona-os em conjunto. O resultado fica disponível como um sinal de saída. Os locais onde os módulos oferecem os seus sinais de entrada e saída chamam-se portos. </para> + +</sect1> + +<sect1 id="structures"> +<title +>Estruturas</title> + +<para +>Uma estrutura é uma combinação de módulos ligados, alguns dos quais têm parâmetros codificados directamente nos seus portos de entrada, outros que poderão estar ligados e outros ainda que não estão ligados de todo. </para> + +<para +>O que você pode fazer com o &arts-builder; é descrever as estruturas. Você descreve quais os módulos que quer que estejam ligados com outros módulos. Quando terminar, você poderá gravar a descrição dessa estrutura num ficheiro, ou dizer ao &arts; para criar essa estrutura que descreveu (Executar). </para> + +<para +>Aí você irá provavelmente ouvir algum som, se fez tudo correctamente. </para> +</sect1> + +<!-- TODO + +<sect1 id="streams"> +<title +>Streams</title> + +</sect1> + +--> + +<sect1 id="latency"> +<title +>Latência</title> + +<sect2 id="what-islatency"> +<title +>O Que é a Latência?</title> + +<para +>Suponha que tem uma aplicação chamada <quote +>pling_rato</quote +> (que fará um som de um <quote +>pling</quote +> se carregar num botão). A latência é o tempo que passa entre você pressionar o botão do rato com o seu dedo e você ouvir o som. A latência nesta configuração compõe-se por si só em várias latências, que poderão ter causas diferentes. </para> + +</sect2> + +<sect2 id="latenbcy-simple"> +<title +>Latência em Aplicações Simples</title> + +<para +>Nesta aplicação simples, a latência ocorre nestes sítios: </para> + +<itemizedlist> + +<listitem> +<para +>O tempo até o 'kernel' notificar o servidor do X11 que foi carregado um botão do rato. </para> +</listitem> + +<listitem> +<para +>O tempo até o servidor do X11 notificar a sua aplicação que um botão do rato foi pressionado. </para> +</listitem> + +<listitem> +<para +>O tempo até à aplicação 'pling_rato' decidir que este botão merece tocar um 'pling'. </para> +</listitem> + +<listitem> +<para +>O tempo que leva à aplicação 'pling_rato' dizer ao servidor de som que deverá tocar um 'pling'. </para> +</listitem> + +<listitem> +<para +>O tempo que leva para o 'pling' (que o servidor de som começa a misturar com a outra saída ao mesmo tempo) vá para os dados dos 'buffers', até que atinge a posição onde a placa de som reproduz o toque. </para> +</listitem> + +<listitem> +<para +>O tempo que leva o som do 'pling' dos altifalantes a atingir o seu ouvido. </para> +</listitem> +</itemizedlist> + +<para +>Os primeiros três itens são latências externas ao &arts;. Elas são interessantes, mas saem do âmbito deste documento. Todavia, tenha em atenção que elas existem, por isso, mesmo que você tenha optimizado tudo o resto para valores muito baixos, você poderá não obter exactamente o resultado que calculou. </para> + +<para +>Indicar ao servidor para tocar qualquer coisa envolve normalmente uma única chamada de &MCOP;. Existem medidas que confirmam isso, na mesma máquina e usando 'sockets' do domínio Unix, que dizem que, para dizer ao servidor para tocar algo, poderão ser feitas cerca de 9000 invocações por segundo na implementação actual. Espera-se que a maioria disto seja devido à sobrecarga no 'kernel', na mudança de uma aplicação para outra. Claro que este valor altera com o tipo exacto dos parâmetros. Se você transferir uma imagem inteira numa chamada, a chamada será mais lenta do que se transferir um valor inteiro. Aplica-se o mesmo para o valor devolvido. Contudo, para as cadeias de caracteres (como o nome do ficheiro <literal role="extension" +>WAV</literal +> a tocar), isto não deverá ser nenhum problema. </para> + +<para +>Isto significa que podemos aproximar este tempo a 1/9000 sec, o que fica abaixo de 0.15 ms. Concluir-se-á que isto não é relevante. </para> + +<para +>A seguir vem o tempo entre o servidor começar a tocar e a placa de som a obter algo. O servidor precisa de armazenar os dados temporariamente em tampões ('buffers'), por isso quando as outras aplicações começarem a executar, como o seu servidor de X11 ou a aplicação <quote +>pling_rato</quote +> não se poderão ouvir quebras. A forma como isso é feito no &Linux; é recorrendo a um conjunto de fragmentos de determinado tamanho. O servidor voltará a preencher os fragmentos, e a placa de som irá reproduzi-los. </para> + +<para +>Por isso, suponha que existem três fragmentos. O servidor preenche o primeiro, e a placa de som começa a tocá-lo. O servidor preenche o segundo e o terceiro, terminando assim a sua parte. As outras aplicações podem agora fazer algo. </para> + +<para +>Dado que a placa de som acabou de tocar o primeiro fragmento, começa a tocar o segundo e o servidor volta a preencher o primeiro, repetindo este processo indefinidamente. </para> + +<para +>A maior latência que você obtém com tudo isto é igual a (número de fragmentos)*(tamanho de cada fragmento)/(taxa amostragem * (tamanho de cada amostra)). Suponha que tem estéreo a 44kHz, com 7 fragmentos de 1024 bytes (o valor por omissão actual do &arts;): isso irá corresponder a 40 ms. </para> + +<para +>Estes valores poderão ser ajustados de acordo com as suas necessidades. Todavia, a utilização do <acronym +>CPU</acronym +> aumenta com latências menores, dado que o servidor de som terá de preencher os tampões com maior frequência e em menores partes. É também quase impossível atingir valores melhores sem dar ao servidor de som a prioridade de tempo-real, porque caso contrário irá ter frequentes quebras. </para> + +<para +>Contudo, é realista ter algo como 3 fragmentos de 256 bytes cada, o que iria fazer com que este valor fosse igual a 4,4 ms. Com um atraso de 4,4ms a utilização inactiva do <acronym +>CPU</acronym +> seria de aproximadamente 7,5% por parte do &arts;. Com um atraso de 40ms, seria de aproximadamente 3% (num PII-350, e este valor poderá depender da sua placa de som, versão do 'kernel', entre outros). </para> + +<para +>Agora, finalmente, tem o tempo que leva o som do 'pling' a sair dos altifalantes e a chegar ao seu ouvido. Suponha que a sua distância até aos altifalantes é de 2 metros. O som viaja à velocidade de 330 metros por segundo. Por isso, esse tempo poder-se-á aproximar a 6 ms. </para> + +</sect2> + +<sect2 id="latency-streaming"> +<title +>Latência em Aplicações de Transmissão</title> + +<para +>As aplicações de transmissão ou difusão são aquelas que produzem elas próprias o som, e que origina uma sequência constanted de amostras, e que será agora adapto para reproduzir as coisas através do &arts;. Por exemplo: quando se pressiona uma tecla, a figura que está a tocar salta, aparecendo um som de 'boing'. </para> + +<para +>Primeiro que tudo, você precisa de saber como é que o &arts; faz a transmissão. É bastante semelhante às E/S com a placa de som. O jogo envia alguns pacotes com amostras para o servidor de som. Imagine-se que são três pacotes. Assim que o servidor estiver pronto com o primeiro pacote, envia uma confirmação de volta para o jogo a dizer que este pacote está pronto. </para> + +<para +>O jogo cria outro pacote de som e envia-o para o servidor. Entretanto o servidor começa a consumir o segundo pacote de som, e assim por diante. A latência aqui é semelhante à do caso simples: </para> + +<itemizedlist> +<listitem> +<para +>O tempo até que o 'kernel' notifique o servidor de X11 que uma tecla foi carregada. </para> +</listitem> + +<listitem> +<para +>O tempo até que o servidor de X11 notifique o jogo de que uma tecla foi carregada. </para> +</listitem> + +<listitem> +<para +>O tempo até que o jogo se decida que esta tecla merece tocar um 'boing'. </para> +</listitem> + +<listitem> +<para +>O tempo até o pacote de som onde o jogo começou a colocar o som do 'boing' leva a chegar ao servidor de som. </para> +</listitem> + +<listitem> +<para +>O tempo que leva ao 'boing' (que o servidor de som começa a misturar para de uma vez) passe para os dados nos tampões ('buffers'), até que atinja a posição em que a placa de som começa a tocar. </para> +</listitem> + +<listitem> +<para +>O tempo que o 'boing' leva a sair dos altifalantes até atingir o seu ouvido. </para> +</listitem> + +</itemizedlist> + +<para +>As latências externas, tal como acima, estão fora do âmbito deste documento. </para> + +<para +>Obviamente, a latência da transmissão depende do tempo que leva a todos os pacotes que são usados na transmissão a serem tocados uma vez. Deste modo, é igual a (número de pacotes)*(taxa de amostragem * (tamanho de cada amostra)) </para> + +<para +>Como você vê, é a mesma fórmula que se aplica para os fragmentos. Contudo, para os jogos, não faz sentido fazer demoras tão pequenas. Pode-se dizer que uma configuração realista para os jogos seria de 2048 bytes por pacote, usando 3 pacotes. A latência resultante seria de 35 ms. </para> + +<para +>Isto baseia-se no seguinte: assuma que o jogo desenha 25 imagens por segundo. É provavelmente seguro assumir que você não notará nenhuma diferença na saída de som para uma imagem. Por isso, 1/25 segundos para a transmissão é aceitável, o que por sua vez significa que 40 ms seria ok. </para> + +<para +>A maioria das pessoas também não irão executar os seus jogos, com prioridade de tempo-real, onde o perigo de quebras no som não pode ser negligenciado. A transmissão com 3 pacotes de 256 bytes cada é possível (tentou-se isso) - mas provoca uma carga grande de <acronym +>CPU</acronym +> para a transmissão. </para> + +<para +>para as latências do lado do servidor, você pode calculá-las exactamente como está dito em cima. </para> + +</sect2> + +<sect2 id="cpu-usage"> +<title +>Algumas considerações de utilização do <acronym +>CPU</acronym +></title> + +<para +>Existem vários factores que influenciam a utilização do <acronym +>CPU</acronym +> num cenário complexo, com algumas aplicações de transmissão entre outras, alguns 'plugins' no servidor, &etc;. Só para indicar algumas: </para> + +<itemizedlist> +<listitem> +<para +>Utilização em bruto de <acronym +>CPU</acronym +> pelos cálculos que são necessários. </para> +</listitem> + +<listitem> +<para +>A sobrecarga do escalonamento interno do &arts; - como é que o &arts; decide qual o módulo que deve calcular o quê. </para> +</listitem> + +<listitem> +<para +>A sobrecarga da conversão de inteiros para números de vírgula flutuante. </para> +</listitem> + +<listitem> +<para +>A sobrecarga do protocolo &MCOP;. </para> +</listitem> + +<listitem> +<para +>'Kernel': mudança de contexto/processo. </para> +</listitem> + +<listitem> +<para +>'Kernel': sobrecarga nas comunicações </para> +</listitem> +</itemizedlist> + +<para +>Para a carga em bruto do <acronym +>CPU</acronym +> usada nos cálculos, se você tocar duas sequências em simultâneo, você terá de efectuar somas. Se você aplicar um filtro, estão envolvidos alguns cálculos. Para dar um exemplo simplificado, a adição de duas sequências envolve talvez quatro ciclos de <acronym +>CPU</acronym +> por soma, o que num processador a 350MHz corresponde a 44100*2*4/350000000 = 0,1% utilização do <acronym +>CPU</acronym +>. </para> + +<para +>Escalonamento interno do &arts;: o &arts; precisa de decidir qual o 'plugin' que irá calcular um dado conjunto de dados; isto leva tempo. Faça uma análise da performance se você estiver interessado nisso. Geralmente o que se pode dizer é: quanto menos de tempo-real fizer (&ie;. quanto maiores os blocos que poderão ser calculados numa dada altura), a menor sobrecarga de escalonamento você obterá. Acima do cálculo de blocos de 128 amostras de cada vez (usando deste modo tamanhos de fragmentos de 512 bytes), a sobrecarga no escalonamento não será grave. </para> + +<para +>Conversão de inteiros para números de vírgula flutuante: o &arts; usa números de vírgula flutuante internamente como formato de dados. Este são simples de usr e nos processadores mais recentes não são mais lentos do que as operações com inteiros. Contudo, se existirem clientes que lidem com dados que não estejam em vírgula flutuante (como um jogo que deverá fazer a sua saída de som através do &arts;), estes precisam de ser convertidos. O mesmo aplica-se que você quiser reproduzir os sons na sua placa de som. A placa de som está à espera de inteiros, por isso você terá de converter. </para> + +<para +>Aqui estão números para um Celeron, da quantidade aproximada de 'ticks' por amostra, com o egcs 2.91.66 com a opção -O2 (dados de Eugene Smith <email +>hamster@null.ru</email +>). Isto é altamente dependente do processador, como é óbvio: </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 +>Por isso significa 1% de utilização do <acronym +>CPU</acronym +> para a conversão e 5% para a interpolação para este processador de 350 MHz. </para> + +<para +>A sobrecarga que o protocolo &MCOP; provoca; este protocolo origina, como regra de algibeira, 9000 invocações por segundo. Muitas destas não são culpa do protocolo &MCOP; em si, mas relaciona-se com as duas causas do 'kernel' indicadas em baixo. Contudo, isto fornece uma base para cálculo do quanto custa a transmissão. </para> + +<para +>Cada pacote de dados que é transmitido poderá ser considerado uma invocação do &MCOP;. Claro que os pacotes grandes são mais lentos do que 9000 pacotes/s, mas isto é a ideia básica. </para> + +<para +>Suponha que você usa tamanhos de pacotes de 1024 bytes. Deste modo, para transferir uma sequência estéreo de 44kHz, você precisa de transferir 44100*4/1024 = 172 pacotes por segundo. Suponha que po100% de utilização de CPU, 9000 pacotes, então iria obter (172*100)/9000 = 2% de utilização de <acronym +>CPU</acronym +> devido à transmissão de pacotes de 1024 bytes. </para> + +<para +>Existem aproximações. Contudo, estas mostram que você poderia estar muito melhor (se o poder fazer para o bem da latência), se usasse por exemplo pacotes de 4096 bytes. Pode-se fazer aqui uma fórmula compacta, calculando o tamanho do pacote que provoca uma utilização de 100% do <acronym +>CPU</acronym +> como sendo igual a 44100*4/9000 = 19,6 amostras, obtendo assim a fórmula rápida: </para> + +<para +>utilização de <acronym +>CPU</acronym +> na transmissão em percentagem = 1960/(tamanho do seu pacote) </para> + +<para +>o que dará 0,5% de utilização do <acronym +>CPU</acronym +> ao transmitir com pacotes de 4096 bytes. </para> + +<para +>Mudança de contextos/processos do 'kernel': isto faz parte da sobrecarga do protocolo &MCOP;. A mudança entre dois processos leva tempo. Existe um novo mapeamento de memória, as 'caches' são invalidadas, entre outras coisas (se existir alguém experiente no 'kernel' a ler isto - que diga quais são as causas exactas). Tudo isto para dizer: leva tempo. </para> + +<para +>Não é certo quantas mudanças de contexto o I &Linux; consegue fazer por segundo, mas esse número não é infinito. Por isso, muita parte da sobrecarga do protocolo &MCOP; deve-se, supostamente, em grande medida à mudança de contextos. No início do &MCOP;, foram feitos testes para usar a mesma comunicação dentro de um processo e isso era muito mais rápido (quatro vezes mais rápido, aproximadamente). </para> + +<para +>'Kernel': sobrecarga na comunicação: Isto faz parte da sobrecarga do protocolo &MCOP;. A transferência de dados entre processos é feita de momento, recorrendo a 'sockets'. Isto é conveniente, dado que os métodos normais do select() podem ser usados para determinar quando chegou uma mensagem. Também pode ser combinado com ou E/S de áudio, o servidor do X11 ou outras fontes, com relativa facilidade. </para> + +<para +>Contudo, estas chamadas de leitura e escrita custam certamente ciclos processador. Para as invocações pequenas (como a transferência de um evento MIDI), isso não é provavelmente assim tão mau, mas para as chamadas pesadas (como a transferência de uma imagem de vídeo com vários megabytes), isto é claramente um problema. </para> + +<para +>A utilização de memória partilhada no &MCOP;, sempre que apropriado, é provavelmente a melhor solução. Isto deverá ser feito de forma transparente para o programador da aplicação. </para> + +<para +>Obtenha um analisador ('profiler') ou faça outros testes para descobrir exactamente como é que a transmissão de áudio tem impacto se usar ou não memória partilhada. Contudo, não é mau, dado que a transmissão de áudio (reproduzir MP3s, por exemplo) poderá ser feita com utilização total de 6% de carga do <acronym +>CPU</acronym +> pelo &artsd; e pelo <application +>artscat</application +> (e 5% pelo descodificador de MP3). Contudo, isto inclui todas as coisas, desde os cálculos necessários até à sobrecarga nos 'sockets', por isso poder-se-á dizer que, nesta configuração, você poderá talvez poupar 1% se usar memória partilhada. </para> + +</sect2> + +<sect2 id="hard-numbers"> +<title +>Alguns Números em Bruto</title> + +<para +>Estes são retirados a partir da versão actual em desenvolvimento. Tentou-se obter também casos reais, porque isso não é o que as aplicações do dia-a-dia deverão usar. </para> + +<para +>Foi criada uma aplicação chamada 'som_sequencia' que transmite dados para o &arts;. Aqui está a correr com prioridade de tempo-real (sem problemas) e com um 'plugin' pequeno por parte do servidor (ajuste e recorte do volume): </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 som_sequencia +5002 stefan 20 0 2208 2208 1684 S 0 6.8 1.7 0:07 som_sequencia +4997 stefan 20 0 2208 2208 1684 S 0 6.6 1.7 0:07 som_sequencia +</programlisting> + +<para +>Cada um deles está a transmitir com 3 fragmentos de 1024 bytes (18 ms). Existem três clientes do mesmo tipo a correr em simultâneo. É certo que isto parece demasiado, mas como foi dito: pegue num analisador ('profiler') e procure o que é que leva tempo e, se o desejar, tente melhorá-lo. </para> + +<para +>Contudo, não se deve pensar que a utilização da transmissão desta forma é realista ou faz sentido. Para levar isto ainda mais ao extremo, tentou-se a menor latência possível. Resultado: você poderá fazer transmissões sem interrupções com uma aplicação-cliente, se tiver 2 fragmentos de 128 bytes entre o &arts; e a placa de som e entre a aplicação-cliente e o &arts;. Isto significa que você tem uma latência total máxima de 128*4/44100*4 = 3 ms, onde 1,5 ms são gerados devido à E/S da placa de som e os outros 1,5 devem-se à comunicação com o &arts;. Ambas as aplicações precisam de correr em tempo-real. </para> + +<para +>Mas isto tem um custo enorme do <acronym +>CPU</acronym +>. Este exemplo custa-lhe cerca de 45% num P-II/350. Ele também começa a fazer 'clicks' se você iniciar o 'top', se mover as janelas no seu ecrã do X11 ou se fizer E/S de disco. Todas estas questões são respeitantes ao 'kernel'. O problema é que o escalonamento de duas ou mais aplicações em tempo-real custam-lhe uma quantidade enorme de esforço também, e ainda mais se elas comunicarem, notificarem-se uma à outra, &etc;. </para> + +<para +>Finalmente, um exemplo mais real. Isto é o &arts; com o &artsd; e um 'artscat' (um cliente de transmissão) que estão a correr 16 fragmentos de 4096 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 +>Barramentos</title> + +<para +>Os barramentos são ligações criadas dinamicamente que transferem o áudio. Basicamente, existem alguns canais de envio e de recepção e de envio. Todos os sinais dos canais de envio são adicionados e enviados para os canais de recepção. </para> + +<para +>Os barramentos, tal como são implementados actualmente, operam em estéreo, por isso você só poderá transferir dados em estéreo nos barramentos. Se você quiser dados mono, bem, transfira apenas por um canal e coloque o outro a zeros ou com outro valor qualquer. Tudo o que precisa de fazer é criar um ou mais objectos Synth_BUS_UPLINK e dar-lhes o nome de um barramento, com o qual eles deverão falar (⪚ <quote +>áudio</quote +> ou <quote +>bateria</quote +>). Basta largar os dados aí. </para> + +<para +>Aí, você terá de criar um ou mais objectos Synth_BUS_DOWNLINK, indicando-lhe o nome do barramento (<quote +>áudio</quote +> ou <quote +>bateria</quote +> ... se corresponde, os dados serão transferidos para aí), e os dados misturados irão sair de novo. </para> + +<para +>Os canais de envio e de recepção poderão residir em estruturas diferentes, e você até poderá ter vários &arts-builder;s diferentes a correr e iniciar um canal de envio num e receber os dados noutro, através do canal de recepção respectivo. </para> + +<para +>O que é interessante acerca dos barramentos é que eles são completamente dinâmicos. Os clientes poder-se-ão ligar instantaneamente. Não deverá haver nenhum 'click' ou ruído à medida que isto acontece. </para> + +<para +>Claro que você não deverá desligar um cliente que toca um sinal, dado que poderá não estar a um nível nulo quando for desligado do barramento, ao que se ouvirá então um 'click'. </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 +>Mediador</title> + +<para +>O &arts;/&MCOP; baseia-se em grande medida na divisão das coisas em pequenos componentes. Isto torna as coisas muito flexíveis, à medida que vai extendendo o sistema facilmente com a adição de componentes novos que implementam efeitos novos, formatos de ficheiros, osciladores, elementos gráficos.... Dado que quase tudo é um componente, quase tudo poderá ser extendido facilmente, sem alterar o código existente. Os componentes novos poderão ser simplesmente carregados dinamicamente para melhorar as aplicações já existentes. </para> + +<para +>Contudo, para isto funcionar, são necessárias duas coisas: </para> + +<itemizedlist> + +<listitem> +<para +>Os componentes têm de se publicitar a eles próprios - eles precisam de descrever quais as coisas que eles oferecem, para que as aplicações sejam capazes de as usar. </para> +</listitem> + +<listitem> +<para +>As aplicações precisam de procurar activamente os componentes que elas poderão usar, em vez de usar sempre a mesma coisa para uma dada tarefa. </para> +</listitem> + +</itemizedlist> + +<para +>A combinação disto - os componentes que dizem <quote +>aqui estou eu, sou bom, usem-me</quote +>, e as aplicações (ou, se preferir, outros componentes) que vão e procuram qual o componente que eles poderão usar para ter uma coisa feita - é o que é chamado de 'mediação' ou 'negociação'. </para> + +<para +>No &arts;, os componentes descrevem-se a si próprios, indicando valores que <quote +>suportam</quote +> para as propriedades.. Uma propriedade típica para um componente de leitura de ficheiros poderá ser a extensão dos ficheiros que pode processar. Os valores típicos poderão ser o <literal role="extension" +>wav</literal +>, o <literal role="extension" +>aiff</literal +> ou o <literal role="extension" +>mp3</literal +>. </para> + +<para +>De facto, todos os componentes poderão optar por oferecer vários valores diferentes para uma dada propriedade. Por isso, um único componente poder-se-á oferecer para ler tanto os ficheiros <literal role="extension" +>wav</literal +> como os <literal role="extension" +>aiff</literal +>, indicando que suporta estes valores para a propriedade <quote +>Extension</quote +> (Extensão). </para> + +<para +>Para o fazer, um componente terá de colocar um ficheiro <literal role="extension" +>.mcopclass</literal +> num local apropriado, contendo as propriedades que suporta; no caso do exemplo actual, isto poderá assemelhar-se ao seguinte (e estará instalado como <filename +><replaceable +>dir_componente</replaceable +>/Arts/WavPlayObject.mcopclass</filename +>): </para> + +<programlisting +>Interface=Arts::WavPlayObject,Arts::PlayObject,Arts::SynthModule,Arts::Object +Author="Stefan Westerfeld <stefan@space.twc.de>" +URL="http://www.arts-project.org" +Extension=wav,aiff +MimeType=audio/x-wav,audio/x-aiff +</programlisting> + +<para +>É importante que o nome do ficheiro <literal role="extension" +>.mcopclass</literal +> também diga como é que se chama a interface do componente. O mediador não olha para o conteúdo de todo, se o ficheiro (tal como está aqui) se chamar <filename +>Arts/WavPlayObject.mcopclass</filename +>, a interface do componente é chamada de <interfacename +>Arts::WavPlayObject</interfacename +> (os módulos mapeiam-se nas pastas). </para> + +<para +>Para ver os componentes, existem duas interfaces (que estão definidas em <filename +>core.idl</filename +>, por isso você irá tê-las em todas as aplicações), chamadas de <interfacename +>Arts::TraderQuery</interfacename +> e <interfacename +>Arts::TraderOffer</interfacename +>. Você poderá fazer uma <quote +>ida às compras</quote +> nos componentes deste tipo: </para> + +<orderedlist> +<listitem> +<para +>Crie um objecto de pesquisa: </para> +<programlisting +>Arts::TraderQuery pesquisa; +</programlisting> +</listitem> + +<listitem> +<para +>Indique o que pretende. Como viu em cima, os componentes descrevem-se a si próprios recorrendo a propriedades, para os quais eles oferecem determinados valores. Por isso, poderá indicar o que quiser através da selecção de componentes que suportem um dado valor para uma dada propriedade. Isto é feito se usar o método 'supports' de uma TraderQuery: </para> + +<programlisting +>pesquisa.supports("Interface","Arts::PlayObject"); + pesquisa.supports("Extension","wav"); +</programlisting> +</listitem> + +<listitem> +<para +>Finalmente, efectue a pesquisa usando o método 'query'. Aí, você irá obter (ou assim se espera) algumas ofertas: </para> + +<programlisting +>vector<Arts::TraderOffer> *ofertas = pesquisa.query(); +</programlisting> +</listitem> + +<listitem> +<para +>Agora você poderá examinar o que encontrou. O que é importante é o método 'interfaceName' do TraderOffer, o qual lhe dirá o nome do componente que correspondeu à pesquisa. Você poderá também encontrar mais propriedades com o método 'getProperty'. O código seguinte irá simplesmente iterar por todos os componentes, imprimir o nome das suas interfaces (que poderão ser usados na criação), e limpar os resultados da pesquisa de novo: </para> +<programlisting +>vector<Arts::TraderOffer>::iterator i; + for(i = ofertas->begin(); i != ofertas->end(); i++) + cout << i->interfaceName() << endl; + delete ofertas; +</programlisting> +</listitem> +</orderedlist> + +<para +>Para este tipo de serviço de mediação ser útil, é importante concordar de alguma forma nos tipos de propriedades que os componentes deverão definir normalmente. É essencial que mais ou menos todos os componentes de uma determinada área usem o mesmo conjunto de propriedades para se descreverem a si próprios (e o mesmo conjunto de valores, sempre que se aplicar), de modo a que as aplicações (ou as outras componentes) sejam capazes de os encontrar. </para> + +<para +>Author (tipo 'texto', opcional): Isto poderá ser usado para mostrar em última instância ao mundo que você fez algo. Aqui você poderá escrever tudo o que quiser, se bem que um endereço de e-mail é obviamente útil. </para> + +<para +>Buildable (tipo booleano, recomendado): Isto indica se o componente pode sre usado com ferramentas de <acronym +>RAD</acronym +> (como o &arts-builder;) que usam os componentes, atribuindo-lhes propriedades e ligando os seus portos. Recomenda-se ter este valor a 'true' (verdadeiro) para quase todos os componentes de processamento de sinal (como os filtros, efeitos, osciladores, ...) e para todas as outras coisas que podem usadas numa abordagem <acronym +>RAD</acronym +>, mas não para coisas internas como, por exemplo, o <interfacename +>Arts::InterfaceRepo</interfacename +>. </para> + +<para +>Extension (tipo texto, onde for relevante): Tudo o que lide com ficheiros deverá optar por usar isto. Você deverá colocar aqui a versão em minúsculas da extensão do ficheiro sem o <quote +>.</quote +>, como por exemplo <userinput +>wav</userinput +>. </para> + +<para +>Interface (tipo texto, obrigatório): Isto deverá incluir a lista completa de interfaces (úteis) que os seus componentes suportam, incluindo provavelmente o <interfacename +>Arts::Object</interfacename +> e, se se aplicar, o <interfacename +>Arts::SynthModule</interfacename +>. </para> + +<para +>Language (tipo texto, recomendado): Se você quiser que o seu componente seja carregado dinamicamente, você precisa de indicar aqui a linguagem. De momento, o único valor permitido é o <userinput +>C++</userinput +>, o que significa que o componente foi criado com a <acronym +>API</acronym +> normal de C++. Se o fizer, você também terá de definir a propriedade <quote +>Library</quote +> em baixo. </para> + +<para +>Library (tipo texto, usado quando relevante): Os componentes feitos em C++ podem ser carregados dinamicamente. Para o fazer, você terá de os compilar num módulo de biblioteca carregada dinamicamente (<literal role="extension" +>.la</literal +>). Aqui você poderá indicar o nome do ficheiro <literal role="extension" +>.la</literal +>. Lembre-se de usar o REGISTER_IMPLEMENTATION (como sempre). </para> + +<para +>MimeType (tipo texto, usado quando for relevante): Tudo o que lide com ficheiros deverá optar por usar isto. Você deverá colocar aqui a versão em minúsculas do tipo MIME normal, como por exemplo <userinput +>audio/x-wav</userinput +>. </para> + +<para +>&URL; (tipo texto, opcional): Se quiser que as pessoas saibam onde poderão obter uma nova versão do componente (ou uma página pessoal, ou algo do género), você podê-lo-á fazer aqui. Isto deverá ser um &URL; normal de &HTTP; ou de &FTP;. </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 +>Espaços de nomes no &arts;</title> + +<sect2 id="namespaces-intro"> +<title +>Introdução</title> + +<para +>Cada declaração de espaço de nomes corresponde à declaração de um <quote +>módulo</quote +> na &IDL; do &MCOP;. </para> + +<programlisting +>// idl de mcop + +module M { + interface A + { + } +}; + +interface B; +</programlisting> + +<para +>Neste caso, o código de C++ gerado para o excerto de &IDL; deverá ser algo semelhante a isto: </para> + +<programlisting +>// código de C++ + +namespace M { + /* declaração de A_base/A_skel/A_stub e itens semelhantes */ + class A { // Classe de interface de referência + /* [...] */ + }; +} + +/* declaração de B_base/B_skel/B_stub e itens semelhantes */ +class B { + /* [...] */ +}; +</programlisting> + +<para +>Por isso, quando se referir às classes do seu código em C++, você terá de escrever <classname +>M::A</classname +>, mas só B. Todavia, você poderá indicar <quote +>using M</quote +> algures - como em qualquer 'namespace' do C++. </para> + +</sect2> + +<sect2 id="namespaces-how"> +<title +>Como o &arts; usa os espaços de nomes</title> + +<para +>Existe um espaço de nomes global chamado <quote +>Arts</quote +>, o qual todos os programas e bibliotecas usam para colocar lá as suas declarações. Isto significa que, ao criar código em C++ que dependa do &arts;, você terá normalmente de anteceder cada classe que usar com o <classname +>Arts::</classname +>, tal como se segue: </para> + +<programlisting +>int main(int argc, char **argv) +{ + Arts::Dispatcher mediador; +" Arts::SimpleSoundServer servidor(Arts::Reference("global:Arts_SimpleSoundServer")); + + servidor.play("/var/xpto/um_ficheiro.wav"); +</programlisting> + +<para +>A outra alternativa é usar um 'using', tal como se segue: </para> + +<programlisting +>using namespace Arts; + +int main(int argc, char **argv) +{ + Dispatcher mediador; + SimpleSoundServer servidor(Reference("global:Arts_SimpleSoundServer")); + + servidor.play("/var/xpto/um_ficheiro.wav"); + [...] +</programlisting> + +<para +>Nos ficheiros &IDL;, você não tem de facto escolha alguma. Se estiver a fazer código que pertença ao &arts; em si, você terá de o pôr no módulo do &arts;. </para> + +<programlisting +>// Ficheiro IDL para código do aRts: +#include <artsflow.idl> +module Arts { // colocar no espaço de nomes Arts + interface Synth_AJUSTE : SynthModule + { + in audio stream entrada; + out audio stream saida; + attribute float factorAjuste; + }; +}; +</programlisting> + +<para +>Se você fizer código que não pertença ao &arts; em si, você não o deverá colocar no espaço de nomes <quote +>Arts</quote +>. Contudo, você poderá criar um espaço de nomes próprio se quiser. Em qualquer dos casos, você terá de anteceder as classes que usar do &arts;. </para> + +<programlisting +>// Ficheiro IDL para código que não pertence ao aRts: +#include <artsflow.idl> + +// pode criar sem declaração do módulo, onde as classes geradas não irão +// usar nenhum 'namespace' (espaço de nomes): +interface Synth_AJUSTE2 : Arts::SynthModule +{ + in audio stream entrada; + out audio stream saida; + attribute float factorAjuste; +}; + +// contudo, você também poderá escolher o seu espaço de nomes, se preferir, por +// isso se criar uma aplicação "Radio", você poderá fazê-lo da seguinte forma: +module Radio { + struct Estacao { + string nome; + float frequencia; + }; + + interface Sintonizador : Arts::SynthModule { + attribute Estacao estacao; // não é necessário anteceder o Estacao, por ser do mesmo módulo + out audio stream esquerda, direita; + }; +}; +</programlisting> + +</sect2> + +<sect2 id="namespaces-implementation"> +<title +>Detalhes Internos: Como Funciona a Implementação</title> + +<para +>Normalmente, nas interfaces, conversões ('casts'), assinaturas dos métodos e noutras situações semelhantes, o &MCOP; precisa de se referir aos nomes dos tipos ou das interfaces. Estes são representados como texto nas estruturas de dados comuns do &MCOP;, enquanto que o espaço de nomes é sempre representado por completo no estilo do C++. Isto significa que os textos iriam conter <quote +>M::A</quote +> e <quote +>B</quote +>, seguindo o exemplo acima. </para> + +<para +>Repare que isto se aplica mesmo se, dentro do texto do &IDL;, os qualificadores de espaços de nomes não foram indicados, dado que o contexto tornou claro qual a o espaço de nomes em que a interface <interfacename +>A</interfacename +> pretendia ser usada. </para> + +</sect2> +</sect1> + +<sect1 id="threads"> +<title +>Tarefas no &arts;</title> + +<sect2 id="threads-basics"> +<title +>Básicos</title> + +<para +>A utilização de tarefas ('threads') em todas as plataformas não é possível. Foi por isso que o &arts; originalmente foi feito sem qualquer suporte multitarefa. Para quase todos os problemas, para cada solução multitarefa para o problema, existe uma solução monotarefa que faz o mesmo. </para> + +<para +>Por exemplo, em vez de colocar a saída de áudio numa tarefa em separado, tornando-a bloqueante, o &arts; usa a saída de áudio não-bloqueante, e tenta descobrir quando deve escrever os próximos blocos de dados com o <function +>select()</function +>. </para> + +<para +>Contudo, o &arts; (em versões muito recentes) oferece pelo menos o suporte para as pessoas que queiram implementar os seus objectos com tarefas separadas. Por exemplo, se você já tiver código para um leitor de <literal role="extension" +>mp3</literal +> e o código do descodificador de <literal role="extension" +>mp3</literal +> está à espera de correr numa tarefa separada, é normalmente o acto mais fácil manter este desenho. </para> + +<para +>A implementação do &arts;/&MCOP; é desenhada tendo como ideia de base a partilha do estado entre os objectos separados, implementada de formas óbvias ou menos óbvias. Uma pequena lista do estado partilhado inclui: </para> + +<itemizedlist> +<listitem +><para +>O objecto Dispatcher (mediador) que faz a comunicação do &MCOP;. </para> +</listitem> + +<listitem> +<para +>A contagem de referências (interfaces inteligentes). </para> +</listitem> + +<listitem> +<para +>O IOManager (gestor de E/S) que vigia os temporizadores e descritores de ficheiros. </para> +</listitem> + +<listitem> +<para +>O ObjectManager (gestor de objectos), que cria os objectos e carrega automaticamente os 'plugins'. </para> +</listitem> + +<listitem> +<para +>O FlowSystem (sistema de fluxo) que invoca o 'calculateBlock' nas situações apropriadas. </para> +</listitem> +</itemizedlist> + +<para +>Todos os objectos acima não estão à espera de ser usados concorrentemente (&ie; chamados em tarefas separadas ao mesmo tempo). Normalmente, existem duas formas de resolver isto: </para> + +<itemizedlist> +<listitem> +<para +>Obrigar ao invocador de todas as funções nestes objectos a adquirir um bloqueio antes de as usar. </para> +</listitem> + +<listitem> +<para +>Tornar estes objectos realmente seguros em multitarefa e/ou criar instâncias por cada tarefa das mesmas. </para> +</listitem> +</itemizedlist> + +<para +>O &arts; segue a primeira aproximação: você terá de bloquear os objectos sempre que precisar de comunicar com qualquer um deles. A segunda aproximação é mais difícil de conseguir. Um truque que tenta obter isto está disponível em <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 +>, mas nesta altura do campeonato, funcionará melhor uma aproximação minimalista, e causará menos problemas com as aplicações existentes. </para> + +</sect2> +<sect2 id="threads-locking"> +<title +>Quando/como efectuar o bloqueio?</title> + +<para +>Você poderá efectuar/libertar o bloqueio com as duas funções: </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 +>Geralmente, você não terá de efectuar o bloqueio (e não deverá ter de tentar fazê-lo), se já foi efectuado anteriormente. Segue-se uma lista com as condições em que este é o caso: </para> + +<itemizedlist> +<listitem> +<para +>Você recebe uma chamada de resposta do IOManager (um temporizador ou um descritor). </para> +</listitem> + +<listitem> +<para +>Você é invocado devido a algum pedido do &MCOP;. </para> +</listitem> + +<listitem> +<para +>Você é chamado a partir do NotificationManager (gestor de notificações). </para> +</listitem> + +<listitem> +<para +>Você é invocado a partir do FlowSystem (pelo 'calculateBlock') </para> +</listitem> +</itemizedlist> + +<para +>Existem também algumas excepções de funções que você só poderá invocar na tarefa principal e que, por essa razão, nunca irá necessitar de bloquear para as chamar: </para> + +<itemizedlist> +<listitem> +<para +>O construtor/destrutor do 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 +>Mas é tudo. Para tudo o resto que esteja relacionado de qualquer forma com o &arts;, você irá necessitar de obter o bloqueio e libertá-lo quando terminar - sempre. Aqui está um exemplo simples: </para> + +<programlisting +>class TarefaTempoSuspensao : Arts::Thread { +public: + void run() { + /* + * você precisa deste bloqueio porque: + * - a criação de uma referência necessita de um bloqueio (porque o + * 'global:' vai para o gestor de objectos, o qual poderá necessitar + * por seu turno do objecto GlobalComm para procurar onde se ligar) + * - a atribuição de uma interface inteligente necessita de um + * bloqueio + * - a construção de um objecto a partir de uma referência necessita * de um bloqueio (porque poderá necessitar de se ligar a um + * servidor) + */ + Arts::Dispatcher::lock(); + Arts::SoundServer servidor = Arts::Reference("global:Arts_SoundServer"); + Arts::Dispatcher::unlock(); + + for(;;) { /* + * você precisa de bloquear aqui, por que + * - libertar a referência a uma interface inteligente necessita + * de um bloqueio (porque poderá fazer uma criação tardia) + * - fazer uma invocação do MCOP necessita de efectuar um bloqueio + */ + Arts::Dispatcher::lock(); + long segundos = servidor.secondsUntilSuspend(); + Arts::Dispatcher::unlock(); + + printf("segundos até à suspensão = %d",segundos); + sleep(1); + } + } +} +</programlisting> + + +</sect2> + +<sect2 id="threads-classes"> +<title +>Classes relacionadas com tarefas</title> + +<para +>As seguintes classes relacionadas com tarefas estão disponíveis de momento: </para> + +<itemizedlist> +<listitem> +<para +>O <ulink url="http://www.arts-project.org/doc/headers/Arts__Thread.html" +><classname +> Arts::Thread</classname +></ulink +> - que encapsula uma tarefa. </para> +</listitem> + +<listitem> +<para +>O <ulink url="http://www.arts-project.org/doc/headers/Arts__Mutex.html" +> <classname +>Arts::Mutex</classname +></ulink +> - que encapsula um 'mutex' - uma exclusão mútua. </para> +</listitem> + +<listitem> +<para +>O <ulink url="http://www.arts-project.org/doc/headers/Arts__ThreadCondition.html" +> <classname +>Arts::ThreadCondition</classname +></ulink +> - que oferece o suporte para acordar as tarefas que estão à espera que uma dada condição se torne verdadeira. </para> +</listitem> + +<listitem> +<para +>O <ulink url="http://www.arts-project.org/doc/headers/Arts__SystemThreads.html" +><classname +>Arts::SystemThreads</classname +></ulink +> - que encapsula a camada do suporte multitarefa do sistema operativo (e que oferece algumas funções úteis para os programadores das aplicações). </para> +</listitem> +</itemizedlist> + +<para +>Veja os 'links' para obter mais documentação. </para> + +</sect2> +</sect1> + +<sect1 id="references-errors"> +<title +>Referências e Tratamento de Erros</title> + +<para +>As referências no &MCOP; são um dos conceitos mais centrais na programação com o &MCOP;. Esta secção irá tentar descrever como é que as referências são usadas ao certo, e irá também tentar especialmente cobrir os casos de falha ). </para> + +<sect2 id="references-properties"> +<title +>Propriedades básicas das referências</title> + +<itemizedlist> +<listitem> +<para +>Uma referência de &MCOP; não é um objecto, mas sim a referência a um objecto: Ainda que a seguinte declaração <programlisting> + Arts::Synth_PLAY p; +</programlisting +> se pareça com a definição de um objecto, apenas declara a referência a um objecto. Como programador de C++, você poderá pensar nisto como um Synth_PLAY *, um tipo de ponteiro para um objecto Synth_PLAY. Isto significa especialmente que o 'p' poderá ser a mesma coisas que um ponteiro nulo (NULL). </para> +</listitem> + +<listitem> +<para +>Você poderá criar uma referência a NULL (valor nulo), atribuindo este valor explicitamente </para> +<programlisting +>Arts::Synth_PLAY p = Arts::Synth_PLAY::null(); +</programlisting> +</listitem> + +<listitem> +<para +>Invocar objectos numa referência NULL irá conduzir a um estoiro </para> +<programlisting +>Arts::Synth_PLAY p = Arts::Synth_PLAY::null(); + string s = p.toString(); +</programlisting> +<para +>irá levar a um estoiro. Se comparar isto com um ponteiro, é exactamente o mesmo que <programlisting> + QWindow* janela = 0; + janela->show(); +</programlisting +>, o qual todos os programadores de C++ sabem que deverão evitar. </para> +</listitem> + +<listitem> +<para +>Os objectos não-inicializados tentar-se-ão criar 'a posteriori' quando forem usados pela primeira vez </para> + +<programlisting +>Arts::Synth_PLAY p; + string s = p.toString(); +</programlisting> +<para +>é algo diferente de fazer uma referência a um ponteiro NULL. Você não indicou ao objecto de todo o que ele é, e agora irá tentar usá-lo. A questão aqui é que você deseja ter uma instância local de um objecto Arts::Synth_PLAY. Claro que você poderá querer ter algo diferente (como criar o objecto noutro local qualquer, ou usar um objecto remoto existente). Contudo, é um atalho conveniente para criar objectos. A criação tardia não irá funcionar logo que tenha atribuído outra coisa qualquer (como por exemplo uma referência nula). </para> + +<para +>Os termos equivalentes em C++ seriam <programlisting> + QWidget* janela; + janela->show(); +</programlisting +> o que obviamente, em C++, iria dar um estoiro garantido. Por isso, isto é diferente aqui. Esta criação tardia é enganadora, porque não quer dizer que exista necessariamente uma implementação para a sua interface. </para> + +<para +>Por exemplo, considere uma coisa abstracta como um Arts::PlayObject. Existem decerto PlayObjects concretos como os que existem para tocar MP3s ou WAVs, mas o <programlisting> + Arts::PlayObject objecto; + objecto.play(); +</programlisting +> irá falhar de certeza. O problema é que, ainda que a criação tardia funcione e tente criar um PlayObject, irá falhar, dado que existem coisas do tipo Arts::WavPlayObject e outros do género. Daí, use a criação tardia apenas se tiver a certeza que existe uma implementação. </para> +</listitem> + +<listitem> +<para +>As referência podem apontar para o mesmo objecto </para> + +<programlisting +>Arts::SimpleSoundServer s = Arts::Reference("global:Arts_SimpleSoundServer"); + Arts::SimpleSoundServer s2 = s; +</programlisting> + +<para +>cria duas referências para o mesmo objecto. Isto não copia nenhum valor e não cria dois objectos. </para> +</listitem> + +<listitem> +<para +>Todos objectos fazem contagem das referências. Por isso, logo que um objecto já não seja mais referenciado por nenhum outro objecto, é removido. Não existe nenhuma forma explícita de remover um objecto, contudo poderá usar algo do género <programlisting> + Arts::Synth_PLAY p; + p.start(); + [...] + p = Arts::Synth_PLAY::null(); +</programlisting +> para fazer com que o objecto Synth_PLAY se vá embora no fim. Especialmente não deverá ser necessário usar o 'new' e o 'delete' em conjunto com as referências. </para> +</listitem> +</itemizedlist> + +</sect2> + +<sect2 id="references-failure"> +<title +>O caso de falha</title> + +<para +>Dado que as referências poderão apontar para objectos remotos, os servidores que contenham esses objectos poderão estoirar. O que acontece então? </para> + +<itemizedlist> + +<listitem> +<para +>Um estoiro não muda se uma referência é nula. Isto significa que, se o <function +>xpto.isNull()</function +> foi <returnvalue +>true</returnvalue +> antes de um estoiro do servidor, então também será <returnvalue +>true</returnvalue +> depois do estoiro (o que parece claro). Significa também que, se o <function +>xpto.isNull()</function +> foi <returnvalue +>false</returnvalue +> antes de um estoiro do servidor (o 'xpto' fazia referência a um objecto), então também será <returnvalue +>false</returnvalue +> depois do estoiro do servidor. </para> +</listitem> + +<listitem> +<para +>A invocação dos métodos numa referência válida mantém-se segura. Suponha que o servidor que contém o objecto 'calc' estoirou. Se continuar a invocar coisas do tipo <programlisting> + int k = calc.subtrair(i,j) +</programlisting +> estas serão seguras. Obviamente, o 'subtrair' terá de devolver algo aqui, o que não consegue porque o objecto remoto já não existe mais. Nesse caso, o (k == 0) será verdadeiro. Geralmente, as operações tentam devolver algo <quote +>neutro</quote +> como resultado, como por exemplo 0,0, uma referência nula para os objectos ou textos em branco, sempre que o objecto não existir mais. </para> +</listitem> + +<listitem> +<para +>Se invocar o <function +>error()</function +> verá se algo correu bem ou mal. </para> + +<para +>No caso de cima, o <programlisting> + int k = calc.subtrair(i,j) + if(k.error()) { + printf("O k não é igual a i-j!\n"); + } +</programlisting +> iria imprimir <computeroutput +>O k não é igual a i-j</computeroutput +> sempre que a invocação remota não funcionasse. Caso contrário, o <varname +>k</varname +> é de facto o resultado da operação 'subtrair' efectuada pelo objecto remoto (sem estoiro do servidor). Contudo, para os métodos que fazem coisas como remover ficheiros, você não poderá saber de certeza se isso de facto aconteceu. Claro que aconteceu se o <function +>.error()</function +> devolveu <returnvalue +>false</returnvalue +>. Contudo, se o <function +>.error()</function +> devolveu <returnvalue +>true</returnvalue +>, existem duas possibilidades: </para> + +<itemizedlist> +<listitem> +<para +>O ficheiro foi removido, e o servidor estoirou logo depois de o remover, mas antes de transferir o resultado. </para> +</listitem> + +<listitem> +<para +>O servidor estoirou antes de ser capaz de remover o ficheiro. </para> +</listitem> +</itemizedlist> +</listitem> + +<listitem> +<para +>O uso de invocações aninhadas é perigoso em programas resistentes a estoiros </para> + +<para +>Se usar algo do tipo <programlisting> + janela.titlebar().setTitle("xpto"); +</programlisting +> não é uma boa ideia. Suponha que você sabia que essa janela era uma referência de Window válida. Agora suponha que sabe que o <function +>janela.titlebar()</function +> iria devolver uma referência a Titlebar porque o objecto Window foi criado correctamente. Todavia, ainda a frase acima não é segura. </para> + +<para +>O que poderia acontecer é que o servidor que continha o objecto Window tinha estoirado. Aí, independentemente de quão válida fosse a implementação de Window, você iria obter uma referência nula como resultado da operação 'janela.titlebar()'. E aí, obviamente, a invocação de 'setTitle' nessa referência nula iria provocar um estoiro à mesma. </para> + +<para +>Por isso, uma variante segura disto seria <programlisting> + Titlebar titulo = janela.titlebar(); + if(!janela.error()) + titulo.setTitle("xpto"); +</programlisting +>, adicionando o tratamento de erros apropriado, se o desejar. Se você não confiar na implementação de Window, você poderá também usar <programlisting> + Titlebar titulo = janela.titlebar(); + if(!titulo.isNull()) + titulo.setTitle("xpto"); +</programlisting +> em que ambas são seguras. </para> +</listitem> +</itemizedlist> + +<para +>Existem outras condições de falha, como a quebra de rede (suponha que você retira o cabo entre o seu servidor e o cliente enquanto a sua aplicação corre). Contudo, o efeito é o mesmo que um estoiro do servidor. </para> + +<para +>De um modo geral, é claro uma questão de política a forma como você tenta eliminar os erros de comunicação na sua aplicação. Você poderá seguir o método de <quote +>se o servidor estoirar, é necessário depurar o servidor até que nunca mais estoire de novo</quote +>, o que significaria que você não se precisa de se incomodar com todos esses problemas. </para> + +</sect2> + +<sect2 id="references-internals"> +<title +>Detalhes Internos: Contagem de Referências Distribuída</title> + +<para +>Um objecto, para existir, precisa de pertencer a alguém. Se não pertencer, deixará de existir (mais ou menos) imediatamente. Internamente, a pertença é indicada ao chamar o <function +>_copy()</function +>, o qual incrementa uma contagem de referências e é devolvida ao invocar o <function +>_release()</function +>. Logo que a contagem de referências chegue a zero, será feito um 'delete'. </para> + +<para +>Como variação do tema, a utilização remota é indicada pelo <function +>_useRemote()</function +> e desfeita pelo <function +>_releaseRemote()</function +>. Estas funções mantêm uma lista dos servidores que invocaram o objecto (e que, por esse motivo, o possuem). Isto é usado no caso deste servidor se desligar (&ie; estoiro, falha de rede), para remover as referência que ainda existem nos objectos. Isto é feito com o <function +>_disconnectRemote()</function +>. </para> + +<para +>Agora existe um problema. Considere um valor devolvido. Normalmente, o objecto do valor devolvido não pertencerá mais à função que foi chamada. Também não pertencerá à função que chamou, até que a mensagem que mantém o objecto seja recebida. Deste modo, existe um tempo para os objectos <quote +>sem dono</quote +>. </para> + +<para +>Agora, ao enviar um objecto, poder-se-á assumir que, assim que seja recebido, passará a ter um dono de novo, a menos que, mais uma vez, o receptor morra. Contudo, isto significa que é preciso ter um cuidado especial com os objectos, pelo menos ao enviá-los e provavelmente ao recebê-los, de modo a que não morra de uma vez. </para> + +<para +>A forma como o &MCOP; faz isto é <quote +>marcando</quote +> os objectos que estão em vias de ser copiados para a rede. Antes de se dar início a uma cópia, o <function +>_copyRemote</function +> é invocado. Isto evita que o objecto seja libertado durante algum tempo (5 segundos). Logo que o receptor invoque o <function +>_useRemote()</function +>, a marca é removida de novo. Deste modo, todos os objectos que são enviado para a rede são marcados antes da transferência. </para> + +<para +>Se o receptor obtiver um objecto que está no seu servidor, é óbvio que ele não irá invocar o <function +>_useRemote()</function +>. Para esse caso especial, o <function +>_cancelCopyRemote()</function +> existe para remover a marca manualmente. Para além disso, existe também a remoção de marcas temporizada, se tiver sido feita a marcação mas o destinatário não recebeu de facto o objecto (devido a um estoiro ou falha de rede). Isto é feito com a classe <classname +>ReferenceClean</classname +>. </para> + +</sect2> + +</sect1> + +<sect1 id="detail-gui-elements"> +<title +>Elementos &GUI;</title> + +<para +>Os elementos &GUI; estão neste momento num estado experimental. Contudo, esta secção irá descrever o que é suposto acontecer aqui por isso, se você for um programador, você será capaz de perceber como é que o &arts; irá lidar com as &GUI;s no futuro. Existe já algum código, também. </para> + +<para +>Os elementos &GUI; deverão ser usados para permitir às estruturas de síntese interagirem com o utilizador. No caso mais simples, o utilizador deverá ser capaz de modificar alguns parâmetros de uma estrutura directamente (como um factor de ganho que é usado antes do módulo final de reprodução). </para> + +<para +>Nas opções mais complexas, pode-se imaginar que o utilizador deseja modificar os parâmetros de grupos de estruturas e/ou ainda não tem as estruturas a correr, como a modificação do envelope <acronym +>ADSR</acronym +> do instrumento &MIDI; activo no momento. Outra coisa seria mudar o nome do ficheiro de um instrumento baseado em amostras. </para +> + +<para +>Por outro lado, o utilizador poderá querer monitorizar o que o sintetizador está a fazer. Poderão existir osciloscópios, analisadores de espectro, medidores de volume e outras <quote +>experiências</quote +> que mostram a curva de transferência na frequência de um dado módulo de filtragem. </para> + +<para +>Finalmente, os elementos &GUI; deverão ser capazes de controlar a estrutura completa de o que é que está a correr dentro do &arts; e como. O utilizador deverá ser capaz de associar instrumentos a canais &MIDI;, iniciar novos processadores de efeitos, configurar a sua mesa de mistura principal (a qual é ela própria baseada em estruturas do &arts;) para ter mais um canal e usar outra estratégia para os seus equalizadores. </para> + +<para +>Você pode ver - os elementos <acronym +>GUI</acronym +> deverão trazer todas as possibilidades do estúdio virtual que o &arts; deverá simular para o utilizador. Claro, eles deverão interagir de forma ordeira com as entradas &MIDI; (assim como as barras se deverão mexer se elas tiverem entradas &MIDI; que mudem também esse parâmetro), e provavelmente até elas próprias gerarem eventos, para permitir a interacção com o utilizador ser registada com o sequenciador. </para> + +<para +>Tecnicamente, a ideia é ter uma classe de base de &IDL; para todos os elementos (a <classname +>Arts::Widget</classname +>), e derivar um conjunto de elementos comuns desta (como o <classname +>Arts::Poti</classname +>, o <classname +>Arts::Panel</classname +>, o <classname +>Arts::Window</classname +>, ...). </para> + +<para +>Aí, poder-se-á implementar estes elementos com uma biblioteca, como por exemplo o &Qt; ou o Gtk. Finalmente, os efeitos deverão criar as suas &GUI;s a partir dos elementos existentes. Por exemplo, um ' poderia criar a sua interface a partir de cinco objectos <classname +>Arts::Poti</classname +> e de uma <classname +>Arts::Window</classname +>. Por isso, SE existir uma implementação do &Qt; para esses elementos de base, o efeito deverá ser capaz de se apresentar, usando o &Qt;. Se existir uma implementação para Gtk, então deverá também funcionar para o Gtk (e assemelhar-se/funcionar mais ou menos da mesma forma). </para> + +<para +>Finalmente, dado que tem sido utilizada aqui a &IDL;, o &arts-builder; (ou outras ferramentas), serão capazes de ligar as interfaces visualmente, ou gerar automaticamente as interfaces com base nos parâmetros definidos, baseando-se apenas nas interfaces. Deverá ser relativamente simples criar uma classe para <quote +>criar uma &GUI; a partir da descrição</quote +>, que obtém uma descrição da &GUI; (contendo os vários parâmetros e elementos) e criar um objecto gráfico vivo a partir dele. </para> + +<para +>Baseando-se na &IDL; e no modelo de componentes do &arts;/&MCOP;, deverá ser simples extender os objectos possíveis que podem ser usados na &GUI; de forma tão simples como para adicionar um 'plugin' que implementa um novo filtro para o &arts;. </para> + +</sect1> + +</chapter> diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/digitalaudio.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/digitalaudio.docbook new file mode 100644 index 00000000000..d0fe3eb41c6 --- /dev/null +++ b/tde-i18n-pt/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 +>Introdução ao Áudio Digital</title> + +<para +>amostragem digital, filtros, efeitos, &etc;</para> + +</appendix> + + + diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/faq.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/faq.docbook new file mode 100644 index 00000000000..b7a43cf8e04 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/faq.docbook @@ -0,0 +1,1312 @@ +<!-- <?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 +>Perguntas e respostas</title> + +<para +>Esta secção responde a algumas questões perguntadas frequentemente sobre o &arts;. </para> + +<qandaset id="faq-general"> +<title +>Perguntas Gerais</title> + +<qandaentry> +<question> +<para +>Será que o &kde; suporta a minha placa de som para a saída de áudio? </para> +</question> + +<answer> +<para +>O &kde; usa o &arts; para tocar som, e o &arts; usa os controladores do 'kernel' do &Linux;, sejam o <acronym +>OSS</acronym +> ou o <acronym +>ALSA</acronym +> (usando a emulação do <acronym +>OSS</acronym +>). Se a sua placa de som é suportada ou pelo <acronym +>ALSA</acronym +> ou pelo <acronym +>OSS</acronym +> e se estiver configurada convenientemente (&ie; qualquer outra aplicação do &Linux; consegue dar som), irá funcionar aqui também. Existem contudo alguns problemas com algum 'hardware' específico; por favor leia a <link linkend="faq-hardware-specific" +>secção sobre os problemas específicos do 'hardware'</link +> se estiver a ter problemas com o 'artsd' na sua máquina. </para> +<para +>Entretanto, também foi adicionado o suporte para outras plataformas. Aqui está uma lista completa de como a versão mais recente do &arts; poderá tocar som. Se você tiver uma plataforma que não está suportada, por favor pense e alterar o &arts; e migrá-lo para a sua plataforma. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>método de E/S de áudio do &arts;</entry> +<entry +>Comentário</entry> +</row> +</thead> + +<tbody> +<row> +<entry +>paud</entry> +<entry +>Suporte para o Dispositivo de Áudio Pessoal do AIX</entry> +</row> + +<row> +<entry +>alsa</entry> +<entry +>Controladores ALSA-0.5 e ALSA-0.9 do Linux</entry> +</row> + +<row> +<entry +>libaudioio</entry> +<entry +>O suporte para a biblioteca genérica LibAudioIO que funciona no Solaris</entry> +</row> + +<row> +<entry +>nas</entry> +<entry +>O servidor de som NAS, útil nos terminais X que têm suporte de NAS</entry> +</row> + +<row> +<entry +>null</entry> +<entry +>Dispositivo de áudio nulo; elimina o som silenciosamente</entry> +</row> + +<row> +<entry +>oss</entry> +<entry +>O suporte do OSS (Open Sound System) (funciona no Linux, em vários BSDs e outras plataformas com controladores OSS instalados).</entry> +</row> + +<row> +<entry +>toss</entry> +<entry +>Suporte multitarefa do OSS, o qual funciona melhor em certos casos onde o suporte normal do OSS não funciona bem</entry> +</row> + +<row> +<entry +>sgi</entry> +<entry +>O suporte do SGI Direct Media para o IRIX</entry> +</row> + +<row> +<entry +>sun</entry> +<entry +>O suporte para o Solaris</entry> +</row> + +</tbody> +</tgroup> +</informaltable> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Não consigo tocar ficheiros <literal role="extension" +>wav</literal +> com o &artsd;! </para> +</question> + +<answer> +<para +>Verifique se o &artsd; está compilado com a <filename +>libaudiofile</filename +> (faça <userinput +><command +>ldd</command +> <parameter +>artsd</parameter +></userinput +>). Se não estiver, obtenha o 'tdesupport', recompile tudo e irá funcionar. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Consigo ouvir som quando me ligo como <systemitem class="username" +>root</systemitem +>, mas os outros utilizadores não têm som! </para> +</question> + +<answer> +<para +>As permissões do ficheiro <filename class="devicefile" +>/dev/dsp</filename +> afectam os utilizadores que terão som. Para permitir que toda a gente o utilize, faça isto: </para> + +<procedure> +<step> +<para +>Ligue-se como <systemitem class="username" +>root</systemitem +>. </para> +</step> + +<step> +<para +>Abra uma janela do &konqueror;. </para> +</step> + +<step> +<para +>Vá para a pasta <filename class="directory" +>/dev</filename +>. </para> +</step> + +<step> +<para +>Carregue no ficheiro <filename +>dsp</filename +> com o botão <mousebutton +>direito</mousebutton +> do rato, escolhendo de seguida as Propriedades. </para> +</step> + +<step> +<para +>Carregue na página <guilabel +>Permissões</guilabel +>. </para> +</step> + +<step> +<para +>Assinale as opções <guilabel +>Ler</guilabel +> e <guilabel +>Escrever</guilabel +> em todas as secções. </para> +</step> + +<step> +<para +>Carregue em <guibutton +>OK</guibutton +>. </para> +</step> +</procedure> + +<para +>Você poderá obter o mesmo efeito numa janela de terminal com o comando <userinput +><command +>chmod</command +> <option +>666</option +> <parameter +>/dev/dsp</parameter +></userinput +>. </para> + +<para +>Para restringir o acesso ao som para apenas alguns utilizadores, você poderá usar as permissões do grupo. Em algumas distribuições de &Linux;, como por exemplo a Debian/Potato, o <filename class="devicefile" +>/dev/dsp</filename +> já pertence a um grupo chamado <systemitem class="groupname" +>audio</systemitem +>, por isso, tudo o que terá de fazer é adicionar os utilizadores a esse grupo. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Isto ajuda para o &artsd;, mas e então o &kmix;, o &kmid;, o &kscd;,&etc;? </para> +</question> +<answer> + +<para +>Existem vários outros dispositivos que oferecem funcionalidades acedidas pelas aplicações multimédia. Você poderá tratá-las da mesma forma, quer estando acessíveis para todos, quer usando grupos para controlar o acesso. Aqui está uma lista, a qual poderá estar à mesma incompleta (também se existirem vários dispositivos num formato do tipo <filename class="devicefile" +>midi0</filename +>, <filename class="devicefile" +>midi1</filename +>, ..., então só a versão 0 está aqui indicada): </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 +>O que é que eu faço se o 'artsd' não arrancar ou estoirar na sua execução?</para> +</question> + +<answer> +<para +>Primeiro que tudo: tente usar as opções por omissão do &kcontrol; (ou se você estiver a iniciá-lo manualmente, não passe mais nenhumas opções adicionais para além de, provavelmente, a <userinput +><option +>-F</option +><parameter +>10</parameter +> <option +>-S</option +><parameter +>4096</parameter +></userinput +> por causa da latência). Especialmente o <emphasis +>'full duplex' é provável que estoire</emphasis +> com vários controladores, por isso tente desactivá-lo. </para> + +<para +>Uma boa forma de perceber porque é que o &artsd; não arranca (ou se estoira em plena execução) é arrancá-lo manualmente. Abra uma janela do &konsole; e faça: </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 +>Você poderá também adicionar a opção <option +>-l0</option +>, a qual irá imprimir mais informações sobre o que se está a passar, como por exemplo: </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 +>Ao fazê-lo, você irá obter algumas informações úteis sobre o facto de não ter iniciado. Ou, se ele estoirar a fazer isto-ou-aquilo, você poderá fazer tal-e-tal, vendo depois <quote +>como</quote +> é que ele estoira. Se você quiser comunicar um erro, produza um traceamento ('backtrace') com o <command +>gdb</command +> e/ou <command +>strace</command +> para ajudar a encontrar o problema. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>É possível posicionar de novo o &artsd; (mover os ficheiros compilados para outra pasta)?</para> +</question> + +<answer> +<para +>Você não poderá posicionar de novo perfeitamente o &arts;. O problema é que o &artswrapper; tem a localização do &artsd; compilada por motivos de segurança. Você poderá, no entanto, usar o ficheiro <filename +>.mcoprc</filename +> (itens TraderPath/ExtensionPath) para fazer com que o &artsd; posicionado de novo encontre os seus componentes. Veja o <link linkend="the-mcoprc-file" +>capítulo sobre o ficheiro <filename +>.mcoprc</filename +></link +> para saber mais detalhes sobre como fazer isto. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Como é que posso compilar o &arts; com o gcc-3.0?</para> +</question> + +<answer> +<para +>Resposta curta: não, o &arts; não irá funcionar se você compilar com o gcc-3.0. </para> + +<para +>Resposta longa: Na versão oficial existem dois erros do gcc-3.0 que afectam o &arts;. O primeiro, que é o c++/2733 do gcc-3.0 é relativamente inofensivo (e tem a ver com problemas na instrução 'asm'). Ele quebra a compilação do 'convert.cc'. Foi corrigido na versão de CVS do gcc-3.0, e não será mais um problema no gcc-3.0.1 e superiores. Foi também adicionado uma solução de recurso à versão de CVS do KDE/aRts. </para> +<para +>O segundo erro do gcc-3.0, o c++/3145 (que consiste na geração de código errado no caso de herança múltipla virtual) é crítico. As aplicações como o &artsd; irão simplesmente estoirar no arranque quando forem compiladas com o gcc-3.0. Mesmo que tenha sido feito algo na versão do gcc-3.0 na altura em que isto foi escrito, o &artsd; continua ainda a estoirar com frequência e imprevisivelmente. </para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>Que aplicações correm usando o &arts;?</para> +</question> +<answer> + +<para +>Obviamente, todas as aplicações que vêm incluídas no &kde; sabem do &arts;. Isto inclui: </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 +>Os jogos do &kde;, como o &kpoker; e o &ktuberling;</para +></listitem> +</itemizedlist> + +<para +>Algumas aplicações do &kde; que não estão ainda incluídas na distribuição do &kde; (⪚, no 'kdenonbeta') também suportam o &arts;, incluindo: </para> + +<itemizedlist> +<listitem +><para +>&brahms;</para +></listitem> +<listitem +><para +><application +>Kaboodle</application +></para +></listitem> +<listitem +><para +><application +>Kdao</application +></para +></listitem> +</itemizedlist> + +<para +>As seguintes aplicações não-&kde; também são conhecidas por funcionar com o &arts;: </para> + +<itemizedlist> +<listitem +><para +><application +>xmms</application +> (com o 'plugin' do &arts;)</para +></listitem> +<listitem +><para +><application +>RealPlayer</application +> 8.0 da Real Networks (funciona com o &artsdsp;; o suporte nativo do &arts; está a ser considerado)</para +></listitem> +</itemizedlist> + +<para +>Sabe-se que as seguintes aplicações <emphasis +>não</emphasis +> funcionam com o &arts;: </para> + +<itemizedlist> +<listitem +><para +>nenhuma</para +></listitem> +</itemizedlist> + +<para +>Veja também as respostas às perguntas na secção sobre <link linkend="faq-non-arts" +>as aplicações não-&arts;</link +>. </para> + +<para +>Esta secção está incompleta -- se você tiver mais informações sobre as aplicações suportadas e não suportadas, por favor envie as suas referências para o autor, para que possam ser incluídas aqui. </para> +</answer> +</qandaentry> + +</qandaset> + +<qandaset id="faq-non-arts"> +<title +>Aplicações não-&arts;</title> + +<qandaentry> +<question> +<para +>Assim que o &kde; começa a correr, mais nenhuma aplicação consegue aceder ao meu dispositivo de som! </para> +</question> +<answer> +<para +>Desde que o servidor de som &arts; que é usado pelo &kde; começa a correr, irá começar a usar o dispositivo de som. Se o servidor estiver inactivo durante 60 segundos, ele suspender-se-á e libertar o dispositivo automaticamente. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Você diz que ele se suspende ao fim de 60 segundos, mas não o faz para mim! </para> +</question> +<answer> +<para +>Se você iniciar o 'artsd' a partir do painel de controlo do KDE, a situação por omissão é ele suspender-se ao fim de 60 segundos. Se você iniciar o 'artsd' a partir da linha de comandos, você precisa de usar a opção '-s' para indicar o tempo de suspensão automática, caso contrário ele irá desactivar a função de suspensão automática. </para> +<para +>De momento, ele não se suspende se você estiver a usar o 'full-duplex'. Desactive-o no &kcontrol; e ele suspender-se-á. A desactivação do 'full-duplex' é normalmente uma boa ideia se você só usar o &arts; para tocar áudio e não para gravar. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Como é que posso correr as aplicações antigas e que não conhecem o &arts;? </para> +</question> + +<answer> +<para +>Corra-as, utilizando o &artsdsp;. Por exemplo, se você normalmente iria executar: </para> + +<screen +><prompt +>%</prompt +> <userinput +><command +>mpg123</command +> <option +>xpto.mp3</option +></userinput +></screen> + +<para +>use em alternativa:</para> + +<screen +><prompt +>%</prompt +> <userinput +><command +>artsdsp</command +> <option +>mpg123 xpto.mp3</option +></userinput +></screen> + +<para +>Isto irá redireccionar a saída de som para o &arts;. Este método não obriga a alterações nas aplicações. É uma espécie de 'truque sujo' e ainda não suporta por completo todas as funcionalidades do dispositivo da placa de som, como tal algumas aplicações não funcionam. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Não consigo executar o &artsdsp; com nenhuma aplicação; ela estoira sempre! </para> +</question> +<answer> +<para +>Você precisa de uma versão recente da biblioteca 'glibc'; o &artsdsp; não irá funcionar convenientemente em algumas distribuições mais antigas do &Linux;. Por exemplo no Debian 2.1 (que é baseado na 'glibc' 2.0) não funciona, enquanto que no Debian 2.2 (que se baseia na 'glibc' 2.1.3), funciona. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Existem limitações teóricas com algumas aplicações que farão com que elas não corram de todo com o &artsdsp;? </para> +</question> +<answer> +<para +>Não. A utilização do &artsdsp; poderá dar origem a uma maior latência e utilização do <acronym +>CPU</acronym +> do que usando directamente as <acronym +>API</acronym +>s do &arts;. Para além disso, qualquer aplicação que não funcione deverá ser considerada como manifestando algum erro no &artsdsp;. A técnica usada pelo &artsdsp; deverá, se for implementada correctamente, permitir a <emphasis +>todas</emphasis +> as aplicações correrem com ela (incluindo aplicações grandes como o <application +>Quake</application +> 3). </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>O que é que posso fazer se uma aplicação não funcionar com o &artsdsp;? </para> +</question> +<answer> +<para +>Você poderá esperar que o &artsd; se suspenda ou utilizar o comando <userinput +><command +>artsshell</command +> <option +>suspend</option +></userinput +> para pedir ao servidor para se suspender ele próprio. Você só poderá suspender o servidor se nenhuma das aplicações do &arts; esteja de momento a usá-lo; da mesma forma, nenhuma das aplicações do &arts; será capaz de correr quando o servidor estiver suspenso. </para> + +<para +>Se o servidor estiver ocupado, uma maneira crua mas efectiva de se ver livre dele é: </para> + + +<screen +><prompt +>%</prompt +> <userinput +><command +>killall</command +> <option +>artsd</option +> ; <command +>killall</command +> <option +>artswrapper</option +></userinput> +<lineannotation +>Agora inicie a sua própria aplicação.</lineannotation> +<prompt +>%</prompt +> <userinput +><command +>kcminit</command +> <option +>arts</option +></userinput +> +</screen> + +<para +>Qualquer uma das aplicações do &arts; em execução poderá estoirar, todavia, se você matar o servidor. </para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>Então e as aplicações feitas para o &kde; 1.x? </para> +</question> +<answer> +<para +>Se você estiver a correr aplicações do &kde; 1.x, cuja saída de som é feita através do servidor de som do &kde; 1, você terá de correr o <application +>kaudioserver</application +> para que ele funcione. Você poderá iniciar o <application +>kaudioserver</application +> da mesma forma que as outras aplicações que não usam o &arts;: </para> + +<screen +><prompt +>%</prompt +> <userinput +><command +>artsdsp</command +> <option +>kaudioserver</option +></userinput +> +</screen> + +<para +>Você terá de ter instalado o 'kaudioserver' (a partir do mesmo local onde arranjou as suas aplicações do &kde; 1.x) - isso pertence ao &kde; 1.x, não ao &kde; 2. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>E as aplicações que usam o servidor de som <acronym +>ESD</acronym +> (Enlightened Sound Daemon)? </para> +</question> +<answer> +<para +>A questão é semelhante à do <application +>kaudioserver</application +>. Essas aplicações irão necessitar de um servidor 'esd' em execução. Você poderá iniciar o <command +>esd</command +> através do &artsdsp;, e todas as aplicações que usam o <acronym +>ESD</acronym +> deverão funcionar bem, como o seguinte: </para> +<screen +><prompt +>%</prompt +> <userinput +><command +>artsdsp</command +> <option +>esd</option +></userinput +> +</screen> +<para +>As versões mais novas do aRts ( +>= 1.2.0) também poderão usar o <acronym +>ESD</acronym +> em vez de aceder directamente à placa de som. Na linha de comandos, você poderá usar a opção '-a', tal como se segue </para> +<screen +><prompt +>%</prompt +> <userinput +><command +>artsd</command +> <option +>-a esd</option +></userinput +> +</screen> +<para +>para ter o suporte do EsounD; no caso do KDE, você poderá usar o &kcontrol; para configurar o 'artsd' para usar o 'esd' em Som -> Servidor de Som -> E/S de Som. </para> +</answer> +</qandaentry> + +</qandaset> + +<qandaset id="faq-latency"> +<title +>Latência</title> + +<qandaentry> +<question> +<para +>De vez em quando oiço pausas curtas ao ouvir música, isso é um erro? </para> +</question> +<answer> +<para +>Isto é provável que não seja um erro, mas seja causado pelo facto de que o 'kernel do &Linux; não é muito bom no escalonamento em tempo-real. Existem situações em que o &arts; não será capaz de se manter a tocar o som. Você poderá, contudo, activar as permissões de tempo-real (no &kcontrol;), e usar um valor de latência elevado (como por exemplo <guilabel +>250ms</guilabel +> ou <guilabel +>não interessa</guilabel +>), o que poderá sempre melhorar a situação. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Qual é o efeito da opção do tempo de resposta? </para> +</question> +<answer> +<para +>O texto de ajuda para esta opção no &kcontrol; poderá ser enganador. Um valor mais baixo significa que o &arts; irá levar menos tempo a responder aos eventos externos (&ie;. o tempo que leva entre fechar uma janela e ouvir um som tocado pelo &artsd;). Irá também usar mais recursos do <acronym +>CPU</acronym +> e estará mais sujeito a provocar perdas.</para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Existe mais alguma coisa que eu possa fazer para evitar as pausas? </para> +</question> +<answer> +<para +>Para os utilizadores de unidades <acronym +>IDE</acronym +>, você poderá usar o comando <command +>hdparm</command +> para colocar as suas unidades <acronym +>IDE</acronym +> no modo <acronym +>DMA</acronym +>. Uma palavra de aviso: isto não funciona em todo o 'hardware', e poderá dar origem a uma reinicialização forte ou, em casos raros, à perda de dados. Leia a documentação sobre o comando <command +>hdparm</command +> para obter mais detalhes. Foi usado com sucesso o seguinte comando: </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 +>Você precisa de correr isto depois de cada arranque, por isso você poderá querer colocar isto num programa de arranque do sistema (como isso é feito depende da distribuição, mas no Debian &Linux; é normalmente colocado no <filename +>/etc/rc.boot</filename +>). </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>A prioridade de tempo-real não parece ter nenhum efeito em mim. Porquê? </para> +</question> +<answer> +<para +>Verifique se o 'artswrapper' está mesmo instalado 'suid' <systemitem class="username" +>root</systemitem +>, como é suposto que esteja. Muitas distribuições (como por exemplo o SuSE7.x) não fazem isto. Você poderá verificar isto se usar: ls -l $(which artswrapper). Bem: <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/kde3/bin/artswrapper +</screen +> Mal: <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/kde3/bin/artswrapper +</screen +> Se você não tiver um 's', poderá obtê-lo se fizer: <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 +>Se você tornar o &artswrapper; SUID <systemitem class="username" +>root</systemitem +>, ele irá provavelmente melhorar a qualidade da sua reprodução áudio, reduzindo os cortes na música. Contudo, aumenta também o risco de que um erro no código ou um utilizador malicioso façam estoirar ou prejudicar o seu sistema. Para além disso, nas máquinas multi-utilizador, a definição de prioridades de áudio de alta-fidelidade poderá resultar numa 'performance' mais reduzida para os utilizadores que estão a tentar tirar partido <quote +>produtivo</quote +> da máquina.</para> + +</answer> +</qandaentry> + + +<qandaentry> +<question> +<para +>Porque é que o &artsd; está a ocupar tanto tempo de <acronym +>CPU</acronym +>? </para> +</question> +<answer> +<para +>Verifique a configuração do seu tempo de resposta. Contudo, a versão actual não está ainda realmente optimizada. Isto irá melhorar, e até lá, não há uma previsão real de quão rápido poderá o &artsd; ser ou não. </para> +</answer> +</qandaentry> +</qandaset> + +<qandaset id="faq-network"> +<title +>Transparência na Rede</title> + +<qandaentry> +<question> +<para +>O que é que preciso para a transparência na rede? </para> +</question> +<answer> +<para +>Active-a na configuração do <guilabel +>Servidor de Som</guilabel +> no &kcontrol; (<guilabel +>activar o servidor de X11 para a informação de segurança</guilabel +> e a <guilabel +>transparência na rede</guilabel +>). Depois copie o seu ficheiro <filename +>.mcoprc</filename +> para todas as máquinas onde você pensa usar a transparência na rede. Ligue-se de novo. Certifique-se que as máquinas que interagem conhecem as outras pelo seu nome (&ie; se elas têm nomes que possam ser resolvidos ou que se encontrem no <filename +>/etc/hosts</filename +>). </para> + +<para +>Isto deverá ser tudo o que precisa de fazer. Contudo, se continuar a não funcionar, existem ainda uns detalhes adicionais. O processo do servidor de som &arts;, o &artsd;, deverá só correr numa máquina, a que tem a placa de som onde o áudio deverá ser reproduzido. Poderá ser iniciado automaticamente no arranque pelo &kde; (se configurar isso no &kcontrol;) ou manualmente, se usar algo do género: </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 +>A opção <option +>-n</option +> é para a transparência na rede, enquanto que as outras configuram a latência. </para> + +<para +>O seu ficheiro <filename +>.mcoprc</filename +> deverá ter este item: </para> + +<screen +><userinput +>GlobalComm=Arts::X11GlobalComm</userinput +> +</screen> + +<para +>em todas as máquinas envolvidas, para que a transparência na rede funcione. Isto é o que fica activo pela opção do painel de controlo <guilabel +>servidor de X11 para a informação de segurança</guilabel +>. </para> + +<para +>Finalmente, em qualquer versão do &kde; da série 2.0.x, existe um erro que se aplica se você não tiver um nome de domínio definido. Os clientes do &artsd; tentam descobrir onde se ligam através da combinação <systemitem class="systemname" +><replaceable +>maquina</replaceable +>.<replaceable +>dominio</replaceable +></systemitem +>. Se o seu nome de domínio estiver em branco, ele irá tentar ligar-se à <systemitem class="systemname" +><replaceable +>maquina</replaceable +></systemitem +>. (repare no ponto extra). Se adicionar uma linha deste tipo ao <filename +>/etc/hosts</filename +> (&ie; <userinput +>orion.</userinput +>, se a sua máquina se chamar <systemitem class="systemname" +>orion</systemitem +>), dará a volta ao problema. </para> +</answer> +</qandaentry> + + +<qandaentry> +<question> +<para +>Como é que eu faço depuração da transparência da rede se não funcionar? </para> +</question> +<answer> +<para +>Assumindo que você tem o código-fonte do &kde;, vá a <filename class="directory" +>tdelibs/arts/examples</filename +> e execute o comando <userinput +><command +>make</command +> <option +>check</option +></userinput +> para compilar alguns programas, incluindo o <application +>referenceinfo</application +>. Depois execute </para> + +<screen +><prompt +>%</prompt +> <userinput +><command +>./referenceinfo</command +> <option +>global:Arts_SimpleSoundServer</option +></userinput +> +</screen> + +<para +>O resultado irá indicar o nome da máquina e do porto que está a ser usado pelo &arts;. Por exemplo, <computeroutput +>tcp:orion:1698</computeroutput +> significa que qualquer cliente que tente usar a transparência de rede deverá saber como aceder à máquina <systemitem class="systemname" +>orion</systemitem +>. </para> +</answer> +</qandaentry> + +</qandaset> + +<qandaset id="faq-hardware-specific"> +<title +>Perguntas específicas do 'hardware'</title> + +<qandaentry> +<question> +<para +>Com que 'hardware' o 'artsd' não funciona bem? </para> +</question> +<answer> +<para +>Parece que existem alguns controladores de &Linux; que não funcionam bem com o &arts; em algumas versões do 'kernel'. Por favor, veja esta lista antes de relatar algum erro. Se você achar que alguma da informação desta lista está incompleta, por favor não hesite em dar-nos a conhecer. <informaltable +> <tgroup cols="4"> +<thead> +<row> +<entry +>Controlador do Linux / Placa de Som</entry> +<entry +>Não funciona em</entry> +<entry +>Funciona em</entry> +<entry +>Comentários</entry> +</row> +</thead> + +<tbody> +<row> +<entry +>controlador i810 (Intel 810 + Áudio AC97)</entry> +<entry +>2.4.9</entry> +<entry +>2.4.18, 2.2.20, controlador comercial do oss, alsa-0.5.12a com emulação de OSS</entry> +<entry +>o controlador provoca sobrecarga do CPU (ver em baixo)</entry> +</row> + +<row> +<entry +>'chipset' Maestro 3/4</entry> +<entry +>2.4.9</entry> +<entry +>?</entry> +<entry +>o controlador provoca algumas vezes sobrecarga do CPU (ver em baixo)</entry> +</row> + +<row> +<entry +>controladores do aureal8820, aureal8830 do Sourceforge</entry> +<entry +>2.4.17</entry> +<entry +>?</entry> +<entry +>o controlador lança excepções / causa sobrecarga do CPU (ver em baixo)</entry> +</row> + +<row> +<entry +>OSS Comercial 3.9.4g com Vértice Aural</entry> +<entry +>?</entry> +<entry +>?</entry> +<entry +>bloqueio do sistema</entry> +</row> + +<row> +<entry +>ymfpci</entry> +<entry +>2.4.0, 2.4.12</entry> +<entry +>2.4.17</entry> +<entry +>o controlador lança uma excepção (ver em baixo)</entry> +</row> + + + +</tbody> +</tgroup> +</informaltable> +</para> +</answer> +</qandaentry> + + + +<qandaentry> +<question> +<para +>Porque é que existem problemas específicos do 'hardware' e como é que os vejo? </para> +</question> +<answer> +<para +>O problema normal é que o controlador não fornece ao aRts a informação suficiente ou a correcta sobre quando deve escrever os dados do som. A maioria dos controladores do OSS fornecem a informação correcta, mas nem todos. </para> +<para +>Você poderá reparar que algumas das outras aplicações (como o 'xmms') poderão não necessitar desses dados, e poderão deste modo até funcionar correctamente com o seu 'hardware'. Contudo, o &arts; precisa destes dados, por isso o 'artsd' poderá falhar. Isto é à mesma um erro no controlador e não do &arts;. </para> +<para +>Existem dois tipos de comportamento que o 'artsd' expõe ao ser executado num controlador incorrecto. Ou ele tenta continuamente fornecer dados novos, mas nunca consegue de facto ser bem-sucedido, o que poderá levar eventualmente a que consuma todo o poder de processamento do CPU e acuse <emphasis +>sobrecarga do CPU</emphasis +> e saia. Ou então, o outro problema é que o 'artsd' poderá ser notificado com informações erradas sobre quanto deverá escrever. O 'artsd' irá então tentar <emphasis +>parar com uma excepção</emphasis +> do género: <screen +>artsd: audiosubsys.cc:458: void Arts::AudioSubSystem::handleIO(int): +Assertion `len == can_write' failed (A excepção 'len == can_write' falhou) +Aborted (Interrompido) +</screen> +</para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>O que é que se passa no controlador se eu tiver o problema da sobrecarga do CPU?? </para> +</question> +<answer> +<para +>Normalmente, o 'artsd' usa o select() para tentar descobrir quando é que deverá escrever dados novos. Depois usa um ioctl(...GETOSPACE...) para saber quantos mais dados deverá escrever. Finalmente, ele irá escrever esses dados. </para> +<para +>Ocorre um problema se o 'artsd' é acordado sempre ou se existem quantidades pequenas de dados para escrever. A documentação do OSS diz que o select() só acorda um processo se existir pelo menos um fragmento para escrever. Contudo, se o 'artsd' é acordado e não existem dados para escrever ou são muito poucos, como por exemplo uma amostra, então ele irá continuar a escrever pedaços pequenos de dados de áudio, o que se poderá tornar muito dispendioso e, eventualmente, sobrecarregará o CPU. </para> +<para +>Para resolver isto, o controlador deverá acordar o 'artsd' apenas se existir um fragmento completo para escrever. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>O que se passa de errado no controlador se eu obtiver a excepção? </para> +</question> +<answer> +<para +>Normalmente, o 'artsd' usa o select() para tentar descobrir quando é que deverá escrever dados novos. Depois usa um ioctl(...GETOSPACE...) para saber quantos mais dados deverá escrever. Finalmente, ele irá escrever esses dados. </para> +<para +>Se o 'artsd' não consegue escrever tantos dados quantos são indicados pelo 'ioctl', ele irá falhar com a excepção. Para resolver isto, o controlador deverá indicar a quantidade de espaço livre correcta. </para> +</answer> +</qandaentry> +</qandaset> + +<qandaset id="faq-other"> +<title +>Outros Problemas</title> + +<qandaentry> +<question> +<para +>Não consigo usar o &arts-builder;. Ele estoira ao executar um módulo! </para> +</question> +<answer> +<para +>A causa mais provável será porque você está a usar estruturas ou módulos antigos que não são suportados na versão do &kde; 2. Infelizmente, a documentação que se encontra na Web refere-se ao &arts;-0.3.4.1, o qual está bastante desactualizado. O estoiro mais frequentemente relatado é: ao executar uma estrutura no &arts-builder; resulta na mensagem de erro <errorname +>[artsd] Synth_PLAY: audio subsystem is already used (o sub-sistema de áudio já está em uso).</errorname +> </para> + +<para +>Você deverá usar um módulo Synth_AMAN_PLAY em vez de um Synth_PLAY, para que o problema se vá embora. Veja também o ficheiro de ajuda do &arts-builder; (carregue em <keycap +>F1</keycap +> no &arts-builder;). </para> + +<para +>As versões mais recentes do &arts-builder; (do &kde; 2.1 beta 1 e posteriores) vêm com um conjunto de exemplos que você poderá usar. </para> +</answer> +</qandaentry> + +</qandaset> + +</chapter> diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/future.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/future.docbook new file mode 100644 index 00000000000..96886e88f2c --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/future.docbook @@ -0,0 +1,401 @@ +<!-- <?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 +>Trabalho Futuro</title> + +<para +>Esta secção descreve algum do trabalho do &arts; que se encontra em progresso. O desenvolvimento progride rapidamente, por isso esta informação poderá estar desactualizada. Você deverá ver o ficheiro da lista TODO e os arquivos das <link linkend="mailing-lists" +>listas de correio</link +> para ver quais as novas funcionalidades que estão planeadas. Sinta-se à vontade para se envolver no novo desenho e implementação. </para> + +<para +>Este é um rascunho do documento que lhe tenta dar uma ideia geral de como as novas tecnologias serão integradas no &arts;. Nomeadamente, cobre o seguinte: </para> + +<itemizedlist> +<listitem +><para +>Como é que as interfaces funcionam.</para +></listitem> +<listitem +><para +>Codificadores - a descodificação de sequências de MP3 ou WAV num formato em que possam ser usados como dados.</para +></listitem> +<listitem +><para +>Vídeo.</para +></listitem> +<listitem +><para +>Multi-tarefa.</para +></listitem> +<listitem +><para +>Sincronização.</para +></listitem> +<listitem +><para +>Expansão/máscara dinâmicas.</para +></listitem> +<listitem +><para +>Composição dinâmica.</para +></listitem> +<listitem +><para +>&GUI;</para +></listitem> +<listitem +><para +>&MIDI;</para +></listitem> +</itemizedlist> + +<para +>Isto ainda é trabalho em progresso. Contudo, deverá ser a base se você quiser ver tecnologias novas no &arts;. Ele dever-lhe-á dar uma ideia geral de como esses problemas serão tratados. Contudo, sinta-se à vontade para corrigir tudo o que verá aqui. </para> + +<para +>As coisas que serão utilizadas pela tecnologia do &arts; (por isso, coordenem os vossos esforços): </para> + +<itemizedlist> +<listitem> +<para +><application +>KPhone</application +> (voz sobre <acronym +>IP</acronym +>) </para> +</listitem> + +<listitem> +<para +>&noatun; (leitor de áudio / vídeo) </para> +</listitem> + +<listitem> +<para +>&artscontrol; (programa de controlo do servidor de som, para os âmbitos) </para> +</listitem> + +<listitem> +<para +><application +>Brahms</application +> (sequenciador de música) </para> +</listitem> + +<listitem> +<para +><application +>Kaiman</application +> (leitor multimédia do &kde;2 - compatível com o kmedia2) </para> +</listitem> + +<listitem> +<para +><application +>mpglib</application +>/<application +>kmpg</application +> (tecnologia de reprodução de áudio e vídeo <acronym +>mpg</acronym +>) </para> +</listitem> + +<listitem> +<para +><application +>SDL</application +> (camada multimédia directa para jogos que ainda não começou, mas que se tornará óptima) </para> +</listitem> + +<listitem> +<para +><application +>electric ears</application +> (o autor contactou-me - o estado é desconhecido) </para> +</listitem> +</itemizedlist> + +<sect1 id="interfaces-how"> +<title +>Como Funcionam as Interfaces</title> + +<!-- I think this is now obsolete and documented elsewhere ? --> + +<para +>As interfaces do &MCOP; são a base do conceito do &arts;. Elas são o equivalente transparente na rede das classes de C++. Sempre que possível, você deverá orientar o seu desenho para as interfaces. Estas consistem em quatro partes: </para> + +<itemizedlist> +<listitem +><para +>Sequências síncronas</para +></listitem> +<listitem +><para +>Sequências assíncronas</para +></listitem> +<listitem +><para +>Métodos</para +></listitem> +<listitem +><para +>Atributos</para +></listitem> +</itemizedlist> + +<para +>Estes poderão ser misturados da forma que você desejar. As novas tecnologias deverão ser definidas em termos de interfaces. Leia as secções sobre as sequências assíncronas e síncronas, assim como as interfaces do KMedia2, os quais são um bom exemplo sobre como as coisas funcionam </para> + +<para +>As interfaces são especificadas no código <literal role="extension" +>.idl</literal +> e executadas através do compilador <command +>mcopidl</command +>. Você deriva da classe <classname +><replaceable +>NomeInterface</replaceable +>_impl</classname +> para as implementar e usa a função <function +>REGISTER_IMPLEMENTATION(NomeInterface_impl)</function +> para inserir as implementações do seu objecto no sistema de objectos do &MCOP;. </para> + +</sect1> + +<sect1 id="codecs"> +<title +>Codificadores - Descodificação de Dados</title> + +<para +>As interfaces do 'kmedia2' permitem-lhe ignorar que os ficheiros WAV, MP3 entre outros consistem em sequências de dados. Em alternativa, você só implementa os métodos para os tocar. </para> + +<para +>Deste modo, você poderá criar uma rotina de carregamento de WAVE's de forma a que você possa tocar ficheiros WAVE (como PlayObject), mas mais ninguém pode usar o seu código. </para> + +<para +>As sequências assíncronas seriam a alternativa. Você define uma interface que lhe permite passar os blocos de dados para dentro extrair blocos de dados para fora. Isto parece ser mesmo assim no &MCOP;: </para> + +<programlisting +>interface Codificador { + entrada async byte stream indata; + saida async byte stream outdata; +}; +</programlisting> + + +<para +>Claro que os codificadores também poderão fornecer parâmetros para emitir dados adicionais, tais como a informação do formato. </para> + +<programlisting +>interface CodificadorAudioByte { + entrada async byte stream indata; + saida async byte stream outdata; + readonly attribute amostragem, bits, canais; +}; +</programlisting> + +<para +>Este <interfacename +>CodificadorAudioByte</interfacename +>, por exemplo, poder-se-ia ligar a um objecto <interfacename +>ByteStreamToAudio</interfacename +> para suportar áudio de vírgula flutuante. </para> + +<para +>Claro, outros tipos de codificadores poderiam envolver directamente a emissão de dados de vídeo, como por exemplo </para> + +<programlisting +>interface CodecVideo { + entrada async byte stream indata; + saida video stream outdata; /* nota: as sequências de vídeo ainda não existem */ +}; +</programlisting> + +<para +>Muito provavelmente, o conceito de um codificador deveria se aplicado em vez da forma <quote +>você sabe como tocar e eu não</quote +> como, por exemplo, o <interfacename +>WavPlayObject</interfacename +> usa no momento. Contudo, alguém precisa de parar e fazer algumas experiências antes de API <acronym +>API</acronym +> ser finalizada. </para> + +</sect1> + +<sect1 id="video"> +<title +>Vídeo</title> + +<para +>A ideia é fornecer o vídeo como sequências assíncronas de algum tipo de dados nativo do &MCOP; que contenha imagens. Este tipo de dados ainda está por ser criado. Ao fazê-lo, os 'plugins' que lidem com as imagens de vídeo poderão ser ligados da mesma forma que os 'plugins' de áudio. </para> + +<para +>Existem algumas coisas que são importantes não deixar de fora, nomeadamente: </para> + +<itemizedlist> +<listitem> +<para +>Existem os espaços de cores <acronym +>RGB</acronym +> e <acronym +>YUV</acronym +>. </para> +</listitem> +<listitem> +<para +>O formato deverá ser associado de qualquer forma à sequência. </para> +</listitem> +<listitem> +<para +>A sincronização é importante. </para> +</listitem> +</itemizedlist> + +<para +>A ideia é deixar possível a reimplementação da classe <classname +>VideoFrame</classname +> (ImagemVideo) para que possa armazenar a informação num segmento de memória partilhada. Ao fazê-lo, até a difusão de vídeo entre os diferentes processos seria possível sem muito trabalho. </para> + +<para +>Contudo, a situação normal para o vídeo é que as coisas estão todas no mesmo processo, desde a descodificação até ao desenho. </para> + +<para +>Foi feita uma implementação em protótipo de emissão de vídeo, a qual poderá obter <ulink url="http://space.twc.de/~stefan/kde/download/video-quickdraw.tar.gz" +>aqui</ulink +>. Isto teria de ser integrado no &MCOP; ao fim de algumas experiências. </para> + +<para +>Uma componente de desenho deveria ser fornecida que suportasse o XMITSHM (com o <acronym +>RGB</acronym +> e o <acronym +>YUV</acronym +>); o Martin Vogt comunicou que estava a fazer algo do género. </para> + +</sect1> + +<sect1 id="threading"> +<title +>Multitarefa</title> + +<para +>De momento, o &MCOP; é todo ele monotarefa. Talvez para o vídeo não seja mais possível dar a volta a essa questão. Ok. Existem algumas coisas que têm de ser tratadas com cuidado: </para> + + +<itemizedlist> +<listitem +><para +>SmartWrappers - estes não são seguros em multitarefa devido à contagem de referências insegura, entre outras questões similares. </para> +</listitem> +<listitem> +<para +>'Dispatcher' / E/S - Também inseguros em multitarefa. </para> +</listitem> +</itemizedlist> + +<para +>Contudo, o que é possível imaginar é tornar os módulos seguros em multitarefa para ambos os casos de sequências, síncronas e assíncronas. Desta forma - com um sistema de fluxo que suporte multitarefa, você poderá escalonar o fluxo do sinal por dois ou mais processadores. Isto iria ajudar bastante no áudio em sistemas multi-processador. </para> + +<para +>Como iria funcionar: </para> + + +<itemizedlist> +<listitem> +<para +>O Sistema de Fluxo decide que módulos deverão calcular o quê - isto é: </para> + <itemizedlist> + <listitem +><para +>imagens de vídeo (com o método 'process_indata')</para +></listitem> + <listitem +><para +>sequências de áudio síncronas ('calculateBlock')</para +></listitem> + <listitem +><para +>outras sequências assíncronas, nomeadamente sequências de 'bytes'</para +></listitem> + </itemizedlist> +</listitem> +<listitem> +<para +>Os módulos poderão calcular estas coisas em tarefas próprias. Para o áudio, faz sentido reutilizar as tarefas (⪚ aplicar em quatro tarefas por quatro processadores, independentemente de estarem a correr 100 módulos). Para a descompressão de vídeo e de 'bytes', poderá ser mais confortável ter uma implementação bloqueante numa tarefa própria, a qual está sincronizada com o resto do &MCOP; pelo sistema de fluxo. </para> +</listitem> + +<listitem> +<para +>Os módulos não poderão usar a funcionalidade do &MCOP; (como as invocações remotas) durante a operação multitarefa. </para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="synchronization"> +<title +>Sincronização</title> + +<para +>O vídeo e o &MIDI; (e o áudio) poderão necessitar de sincronização. Basicamente, baseia-se em marcas temporais. A ideia que existe é anexar as marcas temporais às sequências síncronas, adicionando esse campo a cada pacote. Se você enviar duas imagens de vídeo, simplesmente crie dois pacotes (eles são grandes, de qualquer forma), por isso poderá ter duas marcas temporais diferentes. </para> + +<para +>O áudio deverá ter implicitamente marcas temporais, dado que é síncrono. </para> + +</sect1> + +<sect1 id="dynamic-composition"> +<title +>Composição Dinâmica</title> + +<para +>Deveria ser possível dizer: um FX de efeito é composto a partir destes módulos mais simples. O FX deverá funcionar como um módulo de &MCOP; normal (veja a máscara), mas de facto consiste noutros módulos. </para> + +<para +>Isto é necessário para o &arts-builder;. </para> + +</sect1> + +<sect1 id="gui"> +<title +>&GUI;</title> + +<para +>Todos os componentes &GUI; serão módulos do &MCOP;. Eles deverão ter atributos do tipo 'size' (tamanho), 'label' (texto), 'color' (cor), ... . Um construtor <acronym +>RAD</acronym +> (como o &arts-builder;) deverá ser capaz de os compor visualmente. </para> + +<para +>A &GUI; deverá ser gravável, ao registar os atributos. </para> + +</sect1> + +<sect1 id="midi-stuff"> +<title +>&MIDI;</title> + +<para +>A funcionalidade do &MIDI; será implementada como sequências assíncronas. Existem duas opções, em que uma usa estruturas normais de &MCOP; para definir os tipos e o outro para introduzir ainda outros tipos personalizados. </para> + +<para +>Pensa-se que as estruturas normais serão suficientes, isto é, algo do tipo: </para> + +<programlisting +>struct EventoMidi { + byte b1,b2,b3; + sequence<byte> existe; +} +</programlisting> + +<para +>As sequências assíncronas deverão suportar os tipos de sequências personalizados. </para> + +</sect1> + +</chapter> + + diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/glossary.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/glossary.docbook new file mode 100644 index 00000000000..97fe21f5473 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/glossary.docbook @@ -0,0 +1,177 @@ +<!-- <?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 +>Advanced &Linux; Sound Architecture (Arquitectura de Som Avançada do &Linux;); um controlador de placas de som do &Linux;, e que não vem incluída de momento no código-fonte normal do 'kernel'. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-arts"> +<glossterm +>&arts;</glossterm> +<glossdef> +<para +>Analog Real-Time Synthesizer (Sintetizador em Tempo-Real Analógico); o nome da arquitectura/biblioteca/ferramenta multimédia que é usada pelo projecto do &kde; (repare na capitalização) </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-bsd"> +<glossterm +><acronym +>BSD</acronym +></glossterm> +<glossdef> +<para +>Berkeley Software Distribution (Distribuição de 'Software' da Berkeley); aqui refere-se a qualquer um dos sistemas operativos livres e compatíveis com o &UNIX;, que derivam do &UNIX; da <acronym +>BSD</acronym +>. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-corba"> +<glossterm +><acronym +>CORBA</acronym +></glossterm> +<glossdef> +<para +>Common Object Request Broker Architecture (Arquitectura de Mediação de Pedidos de Objectos Comuns); uma norma para implementar a execução remota orientada por objectos. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-cvs"> +<glossterm +><acronym +>CVS</acronym +></glossterm> +<glossdef> +<para +>Concurrent Versions System (Sistema Concorrente de Versões); um sistema de gestão de configurações de 'software' que é usado por muitos projectos de sistemas, e que inclui o &kde; e o &arts;. </para> +</glossdef> +</glossentry> + +<glossentry id="glos-fft"> +<glossterm +><acronym +>FFT</acronym +></glossterm> +<glossdef> +<para +>Fast Fourier Transform (Transformada de Fourier Rápida); um algoritmo para converter dados do domínio do tempo para o da frequência; é usado frequentemente no processamento de sinais. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-full-duplex"> +<glossterm +>Full Duplex</glossterm> +<glossdef> +<para +>A capacidade de uma placa de som gravar e reproduzir áudio em simultâneo. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-gpl"> +<glossterm +><acronym +>GPL</acronym +></glossterm> +<glossdef> +<para +><acronym +>GNU</acronym +> General Public License (Licença Pública Geral da <acronym +>GNU</acronym +>); uma licença de 'software' criada pela Free Software Foundation para definir os termos para lançar 'software' livre. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-gui"> +<glossterm +>&GUI;</glossterm> +<glossdef> +<para +>Interface Gráfica com o Utilizador </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-idl"> +<glossterm +><acronym +>IDL</acronym +></glossterm> +<glossdef> +<para +>Interface Definition Language (Linguagem de Definição de Interfaces); uma linguagem de programação que é independente do formato para especificar as interfaces (os métodos e os dados). </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-kde"> +<glossterm +>&kde;</glossterm> +<glossdef> +<para +>K Desktop Environment (Ambiente de Trabalho K); um projecto para desenvolver um ambiente de trabalho gráfico livre para os sistemas compatíveis com o &UNIX;. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-lgpl"> +<glossterm +><acronym +>LGPL</acronym +></glossterm> +<glossdef> +<para +><acronym +>GNU</acronym +> Lesser General Public License (Licença Pública Geral Lata da <acronym +>GNU</acronym +>; uma licença de 'software' criada pela Free Software Foundation e que define os termos para lançar 'software' livre; é menos restrita que a <acronym +>GPL</acronym +> e é usada com frequência pelas bibliotecas de 'software'. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-mcop"> +<glossterm +>&MCOP;</glossterm> +<glossdef> +<para +>Multimedia COmmunication Protocol (Protocolo de Comunicação Multimédia); o protocolo usado para a comunicação entre os módulos de 'software' do &arts;; é semelhante ao <acronym +>CORBA</acronym +> mas é mais simples e é optimizado para o multimédia. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-midi"> +<glossterm +>&MIDI;</glossterm> +<glossdef> +<para +>Musical Instrument Digital Interface (Interface Digital de Instrumentos Musicais); um protocolo-padrão para comunicar entre os instrumentos musicais electrónicos; é usado também normalmente para se referir a um formato de ficheiros que armazena os comandos &MIDI;. </para> +</glossdef> +</glossentry> + +<glossentry id="gloss-oss"> +<glossterm +><acronym +>OSS</acronym +></glossterm> +<glossdef> +<para +>Open Sound System (Sistema de Som Aberto); os controladores de som que vêm incluídos no 'kernel' do &Linux; (normalmente chamado de <acronym +>OSS</acronym +>/Free) ou uma versão comercial que é vendida pela 4Front Technologies. </para> +</glossdef> +</glossentry> + +</glossary> diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/gui.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/gui.docbook new file mode 100644 index 00000000000..b769c161b6b --- /dev/null +++ b/tde-i18n-pt/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-pt/docs/tdemultimedia/artsbuilder/helping.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/helping.docbook new file mode 100644 index 00000000000..1a50cb5fadd --- /dev/null +++ b/tde-i18n-pt/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 +>Contribuir para o &arts;</title> + +<sect1 id="how-to-help"> +<title +>Como Pode Ajudar</title> + +<para +>O projecto do &arts; poderá usar a ajuda dos programadores para tornar as aplicações multimédia cientes do &arts;, criar aplicações multimédia novas e melhorar as capacidades do &arts;. Contudo, você não terá de ser um programador para contribuir. A ajuda também poderá ser usada para as pessoas dos testes para enviarem relatórios de erros, traduções do texto e da documentação das aplicações para outras línguas, artistas para desenharem imagens (especialmente para os módulos do <application +>artsbuilder</application +>), músicos para criarem módulos de amostras do &arts; e escritores para criarem ou validarem a correcção da documentação. </para> +</sect1> + +<sect1 id="mailing-lists"> +<title +>Listas de Correio</title> + +<para +>A maioria das discussões de programação do &arts; tomam lugar em duas listas de correio. Este é o lugar para discutir as novas ideias de funcionalidades e de implementação, ou para pedir ajuda para alguns problemas. </para> + +<para +>A lista de correio de Multimédia do &kde; é para os assuntos gerais de multimédia do &kde;, e que inclui o &arts;, assim como as aplicações multimédia, como o &noatun; e o &aktion;. Você poder-se-á subscrever na página Web em <ulink url="http://www.kde.org/mailinglists.html" +> http://www.kde.org/mailinglists.html</ulink +> ou enviar uma mensagem de e-mail com o assunto igual a <userinput +>subscribe <replaceable +>o-seu-endereço-de-e-mail</replaceable +></userinput +> para <email +>kde-multimedia-request@kde.org</email +>. A lista está também arquivada em <ulink url="http://lists.kde.org" +> http://lists.kde.org</ulink +>. </para> + +<para +>A lista de correio do &arts; é para os assuntos específicos do &arts;, incluindo a utilização fora do &kde; do &arts;. Para se subscrever, envie uma mensagem de e-mail que contenha o corpo da mensagem <userinput +>subscribe <replaceable +>o-seu-endereço-de-e-mail</replaceable +></userinput +> para <email +>arts-request@space.twc.de</email +>. A lista é arquivada em <ulink url="http://space.twc.de/~stefan/arts-archive" +> http://space.twc.de/~stefan/arts-archive</ulink +>. </para> + +</sect1> + +<sect1 id="coding-standards"> +<title +>Normas de Código</title> + +<para +>Para obter uma leitura consistente de todo o código, é importante manter o estilo de código igual entre si em todo o código do &arts;. Por favor, mesmo que você só crie um módulo, tente escrever/formatar o seu código de acordo com as recomendações, para que facilite para as várias pessoas manterem a estrutura de código e para ser mais fácil de copiar pedaços de código de um bloco para outro. </para> + +<variablelist> +<varlistentry> +<term +>Nome das funções-membro</term> +<listitem> +<para +>Estilo do &Qt;/&Java;. Isso equivale à capitalização nas quebras de palavras, tendo a primeira letra em minúsculas; sem sublinhados. </para> +<para +>Isto significa, por exemplo:</para> + +<programlisting +>criarDescrEstrutura() + actualizarItem(); + iniciar(); </programlisting> + +</listitem> +</varlistentry> + +<varlistentry> +<term +>Membros da classe</term> +<listitem> +<para +>Os membros da classe não são capitalizados, como por exemplo 'barramenu' ou 'botao'. </para> + +<para +>Quando existirem funções de acesso, a norma deverá ser a do &MCOP;, isto é, ao ter um membro 'long' <function +>xpto</function +>, o qual não será visível directamente, você cria funções: </para> + +<programlisting +>xpto(long novo_valor); + long xpto(); </programlisting> + +<para +>para obter e alterar o valor. Nesse caso, o valor real de <function +>xpto</function +> serão armazenadas em <returnvalue +>_xpto</returnvalue +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Nomes das classes</term> +<listitem> +<para +>Todas as classes deverão ser capitalizadas nas palavras, o que significa <classname +>JanelaModulo</classname +>, <classname +>ModuloSintese</classname +>. Todas as classes que pertencem às bibliotecas deverão usar o espaço de nomes do &arts;, como o <classname +>Arts::Soundserver</classname +>. </para> +<para +>As implementações das classes do &MCOP; dever-se-ão chamar <classname +>Classe_impl</classname +>, como por exemplo <classname +>ServidorSom_impl</classname +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Parâmetros</term> +<listitem> +<para +>Os parâmetros nunca estão capitalizados. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Variáveis locais</term> +<listitem> +<para +>As variáveis locais nunca são capitalizadas, e poderão ter nomes do tipo <varname +>i</varname +>, <varname +>p</varname +>, <varname +>x</varname +>, &etc;, sempre que apropriado. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Tamanho da tabulação</term> +<listitem> +<para +>Uma tabulação equivale neste caso a 4 espaços. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Espaços nas expressões</term> +<listitem> +<para +>Você não precisa normalmente de usar espaços nas expressões. Você poderá, no entanto, usá-los entre os operadores e os seus operandos. Todavia, se você puser um espaço antes de um operador (p.ex., o +), você também precisa de pôr um a seguir ao mesmo. A única excepção a isto são as expressões do tipo lista (com o ,), onde você deverá pôr um espaço a seguir ao ",", mas não antes. Também é aceitável omitir aqui o espaço. </para> +<para +>Os exemplos seguintes demonstram uma boa utilização dos espaços: </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 +>Os exemplos seguintes demonstram como <emphasis +>não</emphasis +> usar os espaços. Para as chamadas as funções, a seguir ao 'if', 'while', 'for', 'switch', entre outros, não é adicionado nenhum espaço. </para> +<programlisting +>{ + // MAL: se você indicar uma lista, ponha espaços apenas após o "," + int a , b , c , d , e , f; + + // MAL: utilização não-simétrica dos espaços no operador '=' + a= 5; + + // MAL: se for considerada uma função, e se não for seguida de um espaço + if (a == 5) { + } + + // MAL: não colocar um espaço a seguir ao 'while' + while (a--) + b++; + + // MAL: os nomes das funções não são seguidos de um espaço + arts_debug ("%d\n", c); + + // MAL: nada aqui é o nome de um membro + Arts::Object o = Arts::Object::null (); +} +</programlisting> +</listitem> +</varlistentry> + + +<varlistentry> +<term +>Nomenclatura dos ficheiros de código</term> +<listitem> +<para +>Os ficheiros de código aqui não deverão ter capitalizações no nome. Deverão ter o nome da classe quando implementam uma única classe. A sua extensão é a <literal role="extension" +>.cc</literal +> se se referirem ao código independente do &Qt;/&GUI;, e <literal role="extension" +>.cpp</literal +> se se referirem ao código dependente do &Qt;/&GUI;. Os ficheiros de implementação das interfaces dever-se-á chamar <filename +><replaceable +>xpto</replaceable +>_impl</filename +>, se o Xpto for o nome da interface. </para> + +<para +>Os ficheiros &IDL; deverão ser chamados de uma forma descritiva para a colecção de interfaces que eles contêm, estando tudo também em minúsculas. Especialmente, não é bom chamar a um ficheiro &IDL; o nome da classe, dado que o mediador .mcopclass e os itens do tipo de informação irão colidir, nesse caso. </para> +</listitem> +</varlistentry> +</variablelist> +</sect1> + +</chapter> diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/index.cache.bz2 b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..480eb157ffe --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/index.cache.bz2 diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/index.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/index.docbook new file mode 100644 index 00000000000..694c9f22279 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/index.docbook @@ -0,0 +1,417 @@ +<?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 % Portuguese "INCLUDE" +> <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> +<bookinfo> +<title +>O Manual do &arts;</title> +<authorgroup> + +<author +><firstname +>Stefan</firstname +> <surname +>Westerfeld</surname +> <affiliation +> <address +><email +>stefan@space.twc.de</email +></address> +</affiliation> +</author> + +<author +><firstname +>Jeff</firstname +> <surname +>Tranter</surname +> <affiliation +> <address +><email +>tranter@kde.org</email +></address> +</affiliation> +</author> + +<othercredit role="translator" +><firstname +>José</firstname +><surname +>Pires</surname +><affiliation +><address +><email +>jncp@netcabo.pt</email +></address +></affiliation +><contrib +>Tradução</contrib +></othercredit +> +</authorgroup> + +<copyright> +<year +>1999-2001</year> +<holder +>Stefan Westerfeld & Jeff Tranter</holder> +</copyright> +<legalnotice +>&FDLNotice;</legalnotice> + +<date +>2001-06-10</date> +<releaseinfo +>1.00.09</releaseinfo> + +<abstract +><para +>Este manual descreve o &arts;, o Sintetizador de Tempo-Real Analógico.</para> + +</abstract> + +<keywordset> +<keyword +>aRts</keyword> +<keyword +>artsbuilder</keyword> +<keyword +>sintetizador</keyword> +<keyword +>multimédia</keyword> +<keyword +>estrutura</keyword> +<keyword +>música</keyword> +<keyword +>som</keyword> +<keyword +>KDE</keyword> +</keywordset> +</bookinfo> + +<chapter id="introduction"> +<title +>Introdução</title> + +<sect1 id="what-is-arts"> +<title +>O que é o &arts;?</title> + +<para +>O Sintetizador de Tempo-Real Analógico, ou &arts;, é um sistema modular para sintetizar o som e a música num computador digital. Usando blocos de construção pequenos chamados módulos, o utilizador poderá criar facilmente ferramentas de processamento de áudio complexas. Os módulos oferecem tipicamente funções como geradores de formas de onda, filtros, efeitos de áudio, mistura de som, reprodução de áudio digital em vários formatos de ficheiros diferentes.</para> + +<para +>O servidor de som &artsd; mistura o áudio de várias fontes em tempo-real, permitindo a várias aplicações de som partilharem de forma transparente o acesso ao 'hardware' de som.</para> + +<para +>Usando o &MCOP; (Multimedia Communication Protocol), as aplicações multimédia poderão ser transparentes na rede, autenticadas do ponto de vista da segurança, e multiplataforma, recorrendo à utilização de interfaces definidas de forma independente da linguagem com o &IDL;. O suporte também é fornecido para as aplicações legadas que não saibam do &arts;. Como componente de base para o ambiente de trabalho do &kde; 2, o &arts; fornece a base da arquitectura multimédia do &kde; e irá no futuro suportar outros tipos multimédia, incluindo o vídeo. Tal como o &kde;, o &arts; corre numa variedade de sistemas operativos, incluindo o &Linux; e as variantes do BSD. Pode ser usado independentemente do &kde;.</para> + +</sect1> + +<sect1 id="using-this-manual"> +<title +>Usar Este Manual</title> + +<para +>Este manual pretende oferecer uma documentação compreensiva sobre o &arts; aos utilizadores com diferentes níveis de aptidões. Dependendo se você é um utilizador normal de aplicações multimédia que tiram partido do &arts; ou um programador de aplicações multimédia, você poderá querer seguir caminhos diferentes ao longo do manual.</para> + +<para +>Sugere-se que você leia primeiro o capítulo de <link linkend="installation" +>Transferir e Compilar o &arts;</link +> se precisar de ter o &arts; instalado inicialmente e em funcionamento. Se você já tiver um sistema funcional, provavelmente incluído na distribuição do seu sistema operativo, você poderá optar por ignorar esta secção.</para> + +<para +>Você deverá então ler as secções no capítulo das <link linkend="arts-tools" +>Ferramentas do &arts;</link +>, especialmente o do &artsd;, do 'artscontrol';, do '&artsshell;', e do '&artsdsp;'. Isto ajudá-lo-á a tirar o partido mais efectivo do &arts;.</para> + +<para +>Se você estiver interessado em ir mais além com o &arts;, leia o capítulo sobre o <link linkend="artsbuilder" +>&arts-builder;</link +> e siga ao longo do tutorial. Isto deverá dar-lhe uma apreciação global das capacidades poderosas do &arts; e dos módulos fornecidos que poderão ser usados sem haver necessidade de ser um programador.</para> + +<para +>Se você quiser saber mais sobre os detalhes do &arts;, quer para desenvolver aplicações multimédia quer para extender o próprio &arts;, leia uma parte ou todo o capítulo <link linkend="arts-in-detail" +>O &arts; em Detalhe</link +>. Isto deverá permitir-lhe compreender todos os conceitos considerados como pré-requisitos da programação de 'software' com o &arts;.</para> + +<para +>Se você estiver interessado especificamente nas capacidades de <acronym +>MIDI</acronym +> do &arts;, deverá ler o capítulo sobre o <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 +>Se quiser desenvolver aplicações multimédia que suportem o &arts;, o capítulo das <link linkend="arts-apis" +>Interfaces de Programação de Aplicações do &arts;</link +> cobrem as diferentes <acronym +>API</acronym +>s em detalhe.</para> + +<para +>Se você quiser extender o &arts;, criando para tal novos módulos, leia o capítulo dos <link linkend="arts-modules" +>Módulos do &arts;</link +>.</para> + +<para +>Se estiver a modificar uma aplicação existente para correr sob o &arts;, leia o capítulo sobre <link linkend="porting" +>Transformar Aplicações para o &arts;</link +>.</para> + +<para +>Você poderá saber como ajudar a contribuir para o projecto do &arts; no capítulo <link linkend="contributing" +>Contribuir para o &arts;</link +>, ler sobre os próximos desenvolvimentos no capítulo sobre o <link linkend="future-work" +>Trabalho Futuro</link +>, e obter referências para mais informações na secção de <link linkend="references" +>Referências</link +>.</para> + +<para +>Foi dada uma volta ao manual com algum material adicional, incluindo as <link linkend="faq" +>respostas às perguntas mais frequentes</link +>, uma <link linkend="contributors" +>lista das contribuições</link +>, os detalhes sobre o &arts; o <link linkend="copyright-and-licenses" +>'copyright' e as licenças</link +>, bem como algum material de fundo sobre o <link linkend="intro-digital-audio" +>áudio digital</link +> e o <link linkend="midi-introduction" +>&MIDI;</link +>. Está também incluído um <link linkend="glossary" +>glossário</link +> de termos.</para> + +<note> +<para +>Este manual ainda tem muito trabalho por fazer. Você é bem-vindo para contribuir na escrita de partes dele, mas se o quiser fazer, contacte o Jeff Tranter <email +>tranter@kde.org</email +> ou o Stefan Westerfeld <email +>stefan@space.twc.de</email +> para evitar a duplicação de esforço. </para> +</note> + +</sect1> + +<sect1 id="history"> +<title +>Histórico</title> + +<para +>No fim de 1997, o Stefan Westerfeld começou a trabalhar num sistema modular em tempo-real para a síntese de som. O código corria inicialmente num sistema PowerPC que funcionava em &AIX;. Essa implementação era muito simples, mas suportava um sistema de fluxo completo que era capaz de fazer coisas como tocar ficheiros MP3 e encaminhar os canais de áudio por módulos de efeitos. </para> + + +<para +>O próximo passo foi implementar uma &GUI; de modo a que os módulos pudessem ser manipulados graficamente. O Stefan tem tido algumas experiências boas com o &kde;, de modo que foi escolhido como a plataforma &GUI;, (sabendo que poderá ser necessário fazer também uma versão para GNOME/Gtk+) e isto levou posteriormente a usar o &Linux; como plataforma principal de desenvolvimento. Chamado anteriormente de <application +>ksynth</application +>, o projecto mudou de nome para &arts; e a rapidez de desenvolvimento acelerou. O projecto nesta fase estava muito completo, com um protocolo baseado em <acronym +>CORBA</acronym +>, com dezenas de módulos, uma ferramenta gráfica de edição de módulos, <acronym +>API</acronym +>s em C e C++, documentação, utilitários, páginas Web e listas de correio com um pequeno grupo de programadores. O projecto avançou bastante com pouco mais do que um ano de desenvolvimento.</para> + +<para +>Assim que a equipa do &kde; começou a planear o &kde; 2.0, tornou-se óbvio que o &kde; necessitava de uma infra-estrutura mais poderosa para o som e para os conteúdos multimédia. Optou-se por adaptar o &arts;, dado que era um bom passo nesta direcção com uma arquitectura estável. Muito do esforço de desenvolvimento foi aplicado nesta nova versão do &arts;, sendo o mais notável a substituição do código em <acronym +>CORBA</acronym +> por um sub-sistema completamente novo, o &MCOP;, optimizado para o multimédia. A versão 0.4 do &arts; foi incluída na versão 2.0 do &kde;.</para> + +<para +>O trabalho continua no &arts;, melhorando a performance e adicionando novas funcionalidades. Deverá ser visto que até mesmo o &arts; é agora um componente de base do &kde;, embora possa ser usado sem o &kde;, e também é usado por aplicações que vão mais além do multimédia tradicional. O projecto atraiu algum interessa da equipa do GNOME, abrindo a possibilidade a que alguma vez se torne a arquitectura-padrão do multimédia nos ambientes de trabalho do &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 +>'Copyright' e Licenças do &arts;</title> + +<para +>'Software' do &arts; copyright 1998-2001 Stefan Westerfeld <email +>stefan@space.twc.de</email +></para> + +<para +><anchor id="contributors"/> Documentação copyright 1999-2001 Stefan Westerfeld <email +>stefan@space.twc.de</email +> e Jeff Tranter <email +>tranter@kde.org</email +>. </para> +<para +>Tradução de José Nuno Pires <email +>jncp@netcabo.pt</email +></para +> +&underFDL; <para +>Todas as bibliotecas que existem no &arts; estão licenciadas segundo os termos da licença <acronym +>GNU</acronym +> Lesser General Public. A grande maioria do código do &arts; está nas bibliotecas, incluindo todo o <acronym +>MCOP</acronym +> e o ArtsFlow. Isto permite às bibliotecas serem usadas para aplicações não-livres e não-gratuitas, se o desejar. </para> + +<para +>Existem alguns programas (como o <application +>artsd</application +>), que são lançados segundo os termos da General Public License da <acronym +>GNU</acronym +>. Dado que têm havido algumas opiniões diferentes sobre se é legal compilar programas <acronym +>GPL</acronym +> com o &Qt;, foi adicionada também uma nota explícita que o permite, para além da <acronym +>GPL</acronym +>: a permissão está também concedida para poder compilar este programa com a biblioteca do &Qt;, tratando o &Qt; como uma biblioteca que acompanha normalmente o 'kernel' do sistema operativo, embora seja ou não esse o caso.</para> + +</chapter> + +<appendix id="installation"> +<title +>Instalar o &arts;</title> + +<para +>Para poder usar o &arts; você precisa obviamente de o ter instalado e a funcionar no seu sistema. Existem duas aproximações para o fazer, as quais estão descritas nas próximas secções. </para> + +<sect1 id="binary-install"> +<title +>Instalar uma Versão Binária Pré-Compilada</title> + +<para +>A forma mais rápida e simples de ter o &arts; a funcionar é instalando os pacotes binários pré-compilados para o seu sistema. A maioria das distribuições recentes do &Linux; incluem o &kde;, e se for o &kde; 2.0 ou posterior, irá incluir o &arts;. Se o &kde; não estiver incluído na sua instalação, poderá estar disponível para transferência a partir do fabricante do seu sistema operativo. Em alternativa, poderá está disponível a partir de terceiros. Certifique-se que você usa os pacotes que são compatíveis com a versão do seu sistema operativo. </para> + +<para +>Uma instalação básica do &kde; irá incluir o servidor de som, o que permitirá à maioria das aplicações tocarem som. Se quiser o conjunto completo de ferramentas e aplicações multimédia, você irá provavelmente necessitar de instalar os pacotes opcionais adicionais. </para> + +<para +>A desvantagem da utilização dos binários pré-compilados é que poderão não ser a versão mais recente do &arts;. Isto provavelmente será o caso se eles forem fornecidos num &CD-ROM;, dado que a rapidez do desenvolvimento do &arts; e do &kde; é tal que a disponibilização em &CD-ROM; não costuma acompanhar esse ritmo. Você poderá concluir também que, se tiver uma arquitectura ou uma distribuição menos comum, os pacotes binários pré-compilados poderão não estar disponíveis e, aí, você terá de usar o segundo método. </para> + +</sect1> + +<sect1 id="source-install"> +<title +>Compilar o Código</title> + +<para +>Embora ocupe algum tempo, a forma mais flexível de criar o &arts; é compilar você próprio o código-fonte. Isto garante-lhe que tem uma versão compilada de forma óptima para a sua configuração do sistema e permite-lhe ter a versão mais recente. </para> + +<para +>Você tem aqui duas opções -- tanto poderá instalar a versão estável mais recente que vem incluída com o &kde; ou poderá obter directamente a versão mais recente (mas possivelmente instável) a partir do repositório de <acronym +>CVS</acronym +> do &kde;. A maioria dos utilizadores que não estejam a programar para o &arts; deverão usar a versão estável. Você poderá obtê-la em <ulink url="ftp://ftp.kde.org" +>ftp://ftp.kde.org</ulink +> ou numa das suas réplicas. Se você estiver a programar activamente para o &arts; você irá querer usar provavelmente a versão no <acronym +>CVS</acronym +>. Se quiser usar o aRts sem o KDE, você poderá obter uma versão autónoma de desenvolvimento em <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 +>Tenha em atenção que, se tiver a compilar a partir do <acronym +>CVS</acronym +>, algumas das componentes do &arts; (&ie; as componentes de base que incluem o servidor de som) estão no módulo do <acronym +>CVS</acronym +> 'tdelibs', enquanto que os componentes adicionais (⪚ o <application +>artsbuilder</application +>) estão incluídos no 'tdemultimedia'. Isto poderá mudar no futuro. Você poderá também encontrar uma versão no módulo 'kmusic'; esta é a versão antiga (antes do &kde; 2.0) e que está agora obsoleta. </para> + +<para +>Os requisitos para compilar o &arts; são basicamente os mesmos que para compilar o &kde;. Os programas do 'configure' deverão detectar a configuração do seu sistema e indicar se estão a faltar alguns componentes obrigatórios. Certifique-se que tem um controlador de som a funcionar no seu sistema (seja ele o <acronym +>OSS</acronym +>/Free que vem com o 'kernel', o controlador <acronym +>OSS</acronym +> da 4Front Technologies, ou o <acronym +>ALSA</acronym +> com a emulação do <acronym +>OSS</acronym +>). </para> + +<para +>Poderá obter mais informações sobre como obter e instalar o &kde; (incluindo o &arts;) na <ulink url="http://www.kde.org/documentation/faq/index.html" +>&FAQ; do &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-pt/docs/tdemultimedia/artsbuilder/mcop.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/mcop.docbook new file mode 100644 index 00000000000..58d1e3c2801 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/mcop.docbook @@ -0,0 +1,1974 @@ +<!-- <?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 Objectos e Transmissão</title> + +<sect1 id="mcop-overview"> + +<title +>Introdução</title> + +<para +>O &MCOP; é a norma que o &arts; usa para: </para> + +<itemizedlist> +<listitem> +<para +>A comunicação entre os objectos. </para> +</listitem> + +<listitem> +<para +>A transparência na rede. </para> +</listitem> + +<listitem> +<para +>A descrição das interfaces dos objectos. </para> +</listitem> + +<listitem> +<para +>A independência da linguagem. </para> +</listitem> +</itemizedlist> + +<para +>Um aspecto importante do &MCOP; é a <emphasis +>linguagem de descrição de interfaces</emphasis +>, ou &IDL;, na qual muitas das interfaces do &arts; e as <acronym +>API</acronym +>s estão definidas de forma independente da linguagem. </para> + +<para +>Para usar as interfaces de &IDL; a partir do C++, é compilada pelo compilador de &IDL; em código de C++. Quando você implementar uma interface, você irá derivar da classe de esqueleto que o compilador de &IDL; gerou. Quando usar uma interface, você irá fazer isso através de uma classe envolvente ('wrapper'). Desta forma, o &MCOP; pode usar um protocolo se o objecto com quem você está a falar não estiver local - você obtém assim a transparência de rede. </para> + +<para +>Este capítulo é suposto descrever as funcionalidades básicas do modelo de objectos que resulta da utilização do &MCOP;, o protocolo, como usar o &MCOP; no C++ (interface para a linguagem), e assim por diante. </para> + +</sect1> + +<sect1 id="interfaces"> + +<title +>As interfaces e a &IDL;</title> + +<para +>Muitos dos serviços fornecidos pelo &arts;, como os módulos e o servidor de som, são definidos com base em <acronym +>interfaces</acronym +>. As interfaces são especificadas num formato independente de linguagens: a &IDL;. </para> + +<para +>Isto permite que muitos dos detalhes de implementação, como o formato das sequências de dados multimédia, a transparência de rede e as dependências de linguagens de programação, sejam escondidos da especificação da interface. Uma ferramenta, o &mcopidl;, traduz a definição da interface para uma linguagem de programação específica (de momento, só o C++ é que é suportado). </para> + +<para +>A ferramenta gera uma classe-esqueleto com todo o código de 'cola' e a funcionalidade de base. Você pode derivar a partir dessa classe para implementar as funcionalidades que deseja. </para> + +<para +>A &IDL; usada pelo &arts; é semelhante à usada pelo <acronym +>CORBA</acronym +> e pelo <acronym +>DCOM</acronym +>. </para> + +<para +>Os ficheiros &IDL; podem conter: </para> + +<itemizedlist> +<listitem> +<para +>Directivas #include do estilo do C para outros ficheiros &IDL;. </para> +</listitem> + +<listitem> +<para +>Definições de tipos enumerados e estruturas, como no C/C++. </para> +</listitem> + +<listitem> +<para +>Definições de interfaces. </para> +</listitem> +</itemizedlist> + +<para +>Na &IDL;, as interfaces são definidas de forma muito semelhante à de uma classe de C++ ou de uma estrutura do C, ainda que com algumas restrições. Como no C++, as interfaces podem ser subclasses de outras interfaces através de herança. As definições de interfaces podem incluir três coisas: sequências, atributos e métodos. </para> + +<sect2 id="streams"> + +<title +>Sequências</title> + +<para +>As sequências ou canais definem os dados multimédia, um dos componentes mais importantes de um módulo. As sequências são definidas no seguinte formato: </para> + +<para +>[ async ] in|out [ multi ] <replaceable +>tipo</replaceable +> stream <replaceable +>nome</replaceable +> [ , <replaceable +>nome</replaceable +> ] ; </para> + +<para +>As sequências têm uma direcção definida na referência do módulo, tal como é indicado pelos qualificadores necessários 'in' ou 'out'. O argumento 'tipo' define o tipo dos dados, o qual poderá ser qualquer um dos tipos descritos posteriormente para os atributos (nem todos são suportados de momento). Muitos dos módulos usam o tipo de sequência 'audio', o qual é um nome alternativo para o 'float' (vírgula-flutuante) dado que é o formato interno dos dados usados para o áudio. Podem ser definidas várias sequências do mesmo tipo na mesma definição se usar nomes separados por vírgulas. </para> + +<para +>As sequências são síncronas por omissão, o que significa que elas são fluxos contínuos de dados a uma taxa constante, como o áudio <acronym +>PCM</acronym +>. O qualificador 'async' indica que é uma sequência assíncrona, a qual é usada para os fluxos de dados descontínuos. O exemplo mais comum de uma sequência assíncrona são as mensagens do &MIDI;. </para> + +<para +>A palavra-chave 'multi', que só é válida para as sequências de entrada, indica que a interface suporta um número variável de entradas. Isto é útil para implementar os dispositivos, como as mesas de mistura, que possam aceitar qualquer número de sequências de entrada. </para> + +</sect2> +<sect2 id="attributes"> + +<title +>Atributos</title> + +<para +>Os atributos são os dados associados com uma instância de uma interface. Estes são declarados como as variáveis-membro do C++, e podem usar qualquer um dos tipos primitivos 'boolean', 'byte', 'long', 'string', ou 'float'. Você também poderá usar os tipos 'struct' ou 'enum' definidos pelo utilizador, assim como as sequências de tamanho variável, usando a sintaxe sequence<tipo>. Os atributos podem ser marcados opcionalmente como 'readonly' (apenas para leitura). </para> + +</sect2> +<sect2 id="methods"> + +<title +>Métodos</title> + +<para +>Tal como no C++, os métodos podem ser definidos nas interfaces. Os parâmetros dos métodos estão restringidos aos mesmos tipos dos atributos. A palavra-chave 'oneway' indica um método que devolve valores imediatamente e é executado assincronamente. </para> + +</sect2> + +<sect2 id="standardinterfaces"> + +<title +>Interfaces-Padrão</title> + +<para +>Já estão definidas várias interfaces-padrão de módulos para você no &arts;, como o <interfacename +>StereoEffect</interfacename +> e o <interfacename +>SimpleSoundServer</interfacename +>. </para> + +</sect2> + +<sect2 id="example"> +<title +>Exemplo</title> + +<para +>Um exemplo simples de um módulo retirado do &arts; é o módulo de atraso constante, o qual se encontra no ficheiro <filename +>tdemultimedia/arts/modules/artsmodules.idl</filename +>. A definição da interface está indicada em baixo. </para> + +<programlisting +>interface Synth_CDELAY : SynthModule { + attribute float time; + in audio stream invalue; + out audio stream outvalue; +}; +</programlisting> + +<para +>Este módulo herda de <interfacename +>SynthModule</interfacename +>. Essa interface, definida no <filename +>artsflow.idl</filename +>, define os métodos-padrão que são implementados em todos os módulos de síntese de música. </para> + +<para +>O efeito CDELAY atrasa um canal estéreo pelo tempo indicado em 'time', o qual é um parâmetro de vírgula flutuante. A definição da interface tem um atributo do tipo 'float' para guardar o valor do atraso. Ele define duas sequências de áudio de entra e duas sequências de saída (o que é típico nos efeitos estéreo). Não são necessários mais métodos para além dos que ele já herdou. </para> + +</sect2> + +</sect1> + +<sect1 id="more-about-streams"> +<title +>Mais Acerca das Sequências</title> + +<para +>Esta secção cobre alguns tópicos adicionais relacionados com as sequências. </para> + +<sect2 id="stream-types"> +<title +>Tipos de Sequências</title> + +<para +>Existem vários requisitos para a forma como um módulo pode fazer a transmissão. Para ilustrar isto, considere estes exemplos: </para> + +<itemizedlist> +<listitem> +<para +>Aumentar o sinal por um factor de 2. </para> +</listitem> + +<listitem> +<para +>Efectuar uma conversão na frequência da amostra. </para> +</listitem> + +<listitem> +<para +>Descomprimir um sinal codificado em RLE. </para> +</listitem> + +<listitem> +<para +>Ler os eventos de &MIDI; do <filename class="devicefile" +>/dev/midi00</filename +> e introduzi-los numa sequência. </para> +</listitem +> +</itemizedlist> + +<para +>O primeiro caso é o mais simples: depois de receber 200 amostras da entrada, o módulo produz 200 amostras de resultado. Só produz resultados à saída quando obtiver algo à entrada. </para> + +<para +>O segundo caso produz números diferentes de amostras de resultado, quando são dadas 200 amostras de entrada. Isto depende de qual a conversão que é efectuada, mas o número é conhecido antecipadamente. </para> + +<para +>O terceiro caso é ainda pior. Para o resultado, você nem sequer consegue adivinhar quantos dados as 200 amostras de entrada irão gerar (provavelmente muito mais do que 200 amostras à saída, mas...). </para> + +<para +>O último caso é um módulo que se torna ele próprio activo e, de vez em quando, produz dados. </para> + +<para +>No &arts;s-0.3.4, só as sequências do primeiro tipo eram tratadas, e a maioria das coisas funcionavam. Isto é provavelmente o que você necessita para criar os módulos que processem áudio. O problema com os outros tipos mais complexos de transmissão é que eles são difíceis de programar e que você não precisa das suas funcionalidades na maior parte das vezes. É por isso que o processamento pode ser feito com dois tipos diferentes de sequências: síncronas e assíncronas. </para> + +<para +>As sequências síncronas têm estas características: </para> + +<itemizedlist> +<listitem> +<para +>Os módulos deverão ser capazes de calcular dados de qualquer dimensão, desde que sejam fornecidos em quantidade suficiente. </para> +</listitem> + +<listitem> +<para +>Todas as sequências têm a mesma taxa de amostragem. </para> +</listitem> + +<listitem> +<para +>A função <function +>calculateBlock()</function +> será chamada quando existirem dados suficientes disponíveis, e o módulo possa confiar nos ponteiros que referenciam os dados. </para> +</listitem +> + +<listitem> +<para +>Não existe nenhuma alocação e libertação de memória a ser feita. </para> +</listitem> +</itemizedlist> + +<para +>As sequências assíncronas, por outro lado, têm este comportamento: </para> + +<itemizedlist> +<listitem> +<para +>Os módulos poderão produzir dados algumas das vezes, ou com uma taxa de amostragem variável, ou apenas se eles tiverem dados de entrada de algum descritor de ficheiro. Eles não estão limitados pela regra <quote +>deve ser capaz de atender pedidos de qualquer tamanho</quote +>. </para> +</listitem> + +<listitem> +<para +>As sequências assíncronas de um módulo poderão ter taxas de amostragem totalmente diferentes. </para> +</listitem> + +<listitem> +<para +>Sequências de saída: existem funções explícitas para alocar pacotes, para enviá-los - e um mecanismo de pesquisa ('polling') opcional que lhe dirá quando deverá criar mais dados. </para> +</listitem> + +<listitem> +<para +>Sequências de entrada: você obtém uma chamada sempre que recebe um novo pacote - você terá de dizer quando estiver a processar todos os dados desse pacote, o que não deverá acontecer de uma vez (você poderá dizer isso mais tarde e, se toda a gente já processou o pacote, este será libertado/reutilizado). </para> +</listitem> +</itemizedlist> + +<para +>Quando você declara as sequências, você poderá usar a palavra-chave <quote +>async</quote +> para indicar que quer criar uma sequência assíncrona. Por isso, por exemplo, assuma que quer converter uma sequência assíncrona de 'bytes' para uma sequência síncrona de amostras. A sua interface poderia ser algo semelhante a isto: </para> + +<programlisting +>interface SequenciaBytesParaAudio : SynthModule { + async in byte stream entrada; // a sequência assíncrona de amostras de entrada + + out audio stream esquerda,direita; // a sequência síncrona de amostras de saída +}; +</programlisting> + +</sect2> + +<sect2 id="async-streams"> +<title +>Usar as Sequências Assíncronas</title> + +<para +>Imagine que decidiu criar um módulo para produzir som assincronamente. A sua interface seria algo parecido com o seguinte: </para> + +<programlisting +>interface UmModulo : SynthModule +{ + async out byte stream saida; +}; +</programlisting> + +<para +>Como é que você envia os dados? O primeiro método é chamado de <quote +>push delivery</quote +> (tradução livre: 'entrega por empurrão'). Com as sequências assíncronas, você envia os dados como pacotes. Isto significa que você envia pacotes individuais com 'bytes', como no exemplo acima. O processo actual é: alocar um pacote, preenchê-lo, enviá-lo. </para> + +<para +>Aqui está isso, em termos de código. Primeiro, é alocado um pacote: </para> + +<programlisting +>DataPacket<mcopbyte> *pacote = saida.allocPacket(100); +</programlisting> + +<para +>Aí, será preenchido: </para> + +<programlisting +>// converter de modo a que o 'fgets' fique contente com um ponteiro (char *) +char *dados = (char *)pacote->contents; + +// como pode ver, você pode encolher o tamanho do pacote depois da alocação, +// se quiser +if(fgets(dados,100,stdin)) + pacote->size = strlen(dados); +else + pacote->size = 0; +</programlisting> + +<para +>Agora, o mesmo é enviado: </para> + +<programlisting +>pacote->send(); +</programlisting> + +<para +>Isto é muito simples, mas se precisar de enviar os pacotes à mesma rapidez com que o destinatário os consegue processar, é necessária outra aproximação, a <quote +>pull delivery</quote +> ('entrega por puxão'). Você pede para enviar os pacotes tão rapidamente quanto o destinatário está pronto para processar. Você começa com uma determinada quantidade de pacotes que envia. À medida que o destinatário vai processando um pacote a seguir ao outro, você começa a preenchê-los de novo com dados novos, enviando-os mais uma vez. </para> + +<para +>Você inicia isso ao chamar o 'setPull'. Por exemplo: </para> + +<programlisting +>saida.setPull(8, 1024); +</programlisting> + +<para +>Isto significa que você deseja enviar os pacotes pela 'saida'. Você irá querer começar a enviar 8 pacotes de cada vez e, à medida que o destinatário processar alguns deles, você poderá querer preenchê-los de novo. </para> + +<para +>Aí, você precisa de implementar um método que preenche os pacotes, e que poderá se assemelhar ao seguinte: </para> + +<programlisting +>void request_saida(DataPacket<mcopbyte> *pacote) +{ + pacote->size = 1024; // não deverá ser maior que 1024 + for(int i = 0;i < 1024; i++) + pacote->contents[i] = (mcopbyte)'A'; + pacote->send(); +} +</programlisting> + +<para +>É tudo; quando não tiver mais dados, você poderá começar a enviar pacotes com tamanho nulo, o que irá parar a recepção. </para> + +<para +>Repare que é essencial dar ao método o nome exacto <methodname +>request_<replaceable +>nome-sequência</replaceable +></methodname +>. </para> + +<para +>Foi então discutido o envio dos dados. A recepção dos mesmos é muito mais simples. Suponha que você tem um filtro ParaMinusculas, que simplesmente converte todas as letras para minúsculas: </para> + +<programlisting +>interface ParaMinusculas { + async in byte stream entrada; + async out byte stream saida; +}; +</programlisting> + +<para +>Isto é mesmo simples de implementar; aqui está a implementação completa: </para> + +<programlisting +>class ParaMinusculas_impl : public ParaMinusculas_skel { +public: + void process_entrada(DataPacket<mcopbyte> *pacote_entrada) + { + DataPacket<mcopbyte> *pacote_saida = saida.allocPacket(pacote_entrada->size); + + // convert to lowercase letters + char *texto_entrada = (char *)pacote_entrada->contents; + char *texto_saida = (char *)pacote_entrada->contents; + + for(int i=0;i<pacote_entrada->size;i++) + texto_saida[i] = tolower(texto_entrada[i]); + + pacote_entrada->processed(); + pacote_saida->send(); + } +}; + +REGISTER_IMPLEMENTATION(ParaMinusculas_impl); +</programlisting> + +<para +>Mais uma vez, é importante dar o nome <methodname +>process_<replaceable +>nome-sequencia</replaceable +></methodname +> ao método. </para> + +<para +>Como pode ver, para cada pacote que chega, você obtém uma chamada a uma função ( a <function +>process_entrada</function +> no caso em questão). Você precisa de chamar o método <methodname +>processed()</methodname +> de um pacote para indicar que acabou de o processar. </para> + +<para +>Aqui está uma sugestão de implementação: se o processamento levar mais tempo (&ie; se precisar de esperar pelo resultado da placa de som ou algo do género), não invoque o 'processed' logo, mas armazene o pacote de dados em si e invoque o 'processed' apenas quando você processar de facto esse pacote. Desta forma, os emissores têm uma hipótese de saber quanto tempo leva mesmo a efectuar o seu trabalho. </para> + +<para +>Dado que a sincronização não é tão boa com as sequências assíncronas, você deverá usar as sequências síncronas sempre que possível e as assíncronas, só quando for necessário. </para> + +</sect2> + +<sect2 id="default-streams"> +<title +>Sequências por Omissão</title> + +<para +>Imagine que tem 2 objectos, como por exemplo um ProdutorAudio e um ConsumidorAudio. O ProdutorAudio tem uma sequência de saída e o ConsumidorAudio tem uma de entrada. De cada vez que os tentar ligar, você irá usar estas duas sequências. A primeira utilização da predefinição é permitir-lhe fazer a ligação sem indicar os portos nesse caso. </para> + +<para +>Agora imagine que os dois objectos poderão lidar com o estéreo, e cada um possa ter um porto <quote +>left</quote +> (esquerdo) e <quote +>right</quote +> (direito). Você gostaria à mesma de os ligar de forma tão simples como anteriormente. Mas como é que o sistema de ligações saberia que porto de saída deveria ligar a que porto de entrada? Não tem nenhuma forma de mapear correctamente as sequências. A utilização de portos predefinidos poderá então ser adoptada para indicar várias sequências, com uma dada ordem. Desta forma, quando você ligar um objecto com 2 portos predefinidos a outro objecto com 2 portos predefinidos de entrada, não terá de indicar os portos e, nesse caso, o mapeamento será feito correctamente. </para> + +<para +>Obviamente, isto não está limitado ao estéreo. Pode-se tornar qualquer número de sequências como predefinidas se necessário, e a função 'connect' irá verificar se o número de predefinições para os dois objectos correspondem (na direcção necessária), se você não indicar os portos a usar. </para> + +<para +>A sintaxe é a seguinte: na &IDL;, você poderá usar a palavra-chave 'default' na declaração da sequência ou numa única linha. Por exemplo: </para> + +<programlisting +>interface MisturaDoisEmUm { + default in audio stream entrada1, entrada2; + out audio stream saida; +}; +</programlisting> + +<para +>Neste exemplo, o objecto irá esperar que os seus dois portos de entrada estejam ligados por omissão. A ordem é a indicada na linha 'default', por isso, um objecto do tipo: </para> + +<programlisting +>interface GeradorRuidoDuplo { + out audio stream bzzt, cuic; + default cuic, bzzt; +}; +</programlisting> + +<para +>Fará as ligações do <quote +>cuic</quote +> à <quote +>entrada1</quote +> e do <quote +>bzzt</quote +> à <quote +>entrada2</quote +> automaticamente. Repare que, dado que só há uma saída para o misturador, será tornada predefinida nesse caso (ver em baixo). A sintaxe usada no gerador de ruído é útil para declarar uma ordem diferente da declaração, ou seleccionando apenas alguns portos como predefinidos. As direcções dos portos nesta linha serão pesquisados pelo &mcopidl;, por isso não os indique. Você até poderá misturar os portos de entrada e de saída numa linha destas, onde só a ordem é que é relevante. </para> + +<para +>Existem algumas regras que são seguidas ao usar a herança: </para> + +<itemizedlist> +<listitem> +<para +>Se for indicada uma lista 'default' na &IDL;, então use-a. Os portos-pai podem ser colocados também nesta lista, quer fossem predefinidos no 'pai' ou não. </para> +</listitem> + +<listitem> +<para +>Caso contrário, herde as predefinições do 'pai'. A ordem é do tipo 'pai1 predefinicao1, pai1 predefinicao2..., pai2 predefinicao1... Se existir um ascendente comum em dois ramos-pai, é feita uma junção do tipo <quote +>virtual public</quote +> na primeira ocorrência da predefinição na lista. </para> +</listitem> + +<listitem> +<para +>Se não existir à mesma nenhuma predefinição e existir uma sequência simples numa dada direcção, use-a como predefinida nessa direcção. </para> +</listitem> +</itemizedlist> + +</sect2> + +</sect1> +<sect1 id="attribute-change-notify"> +<title +>Notificações de mudança dos atributos</title> + +<!-- TODO: This should be embedded better into the context - I mean: the + context should be written ;-). --> + +<para +>As notificações de alteração de atributos são uma forma de saber quando é que um atributo foi alterado. Eles são ligeiramente compatíveis com os 'signals' e 'slots' do &Qt; e do Gtk. Por exemplo, se você tiver um elemento gráfico, como uma barra deslizante, que configura um número entre 0 e 100, você poderá ter normalmente um objecto que faça algo com esse número (por exemplo, poderá controlar o volume de um sinal de áudio). Por isso, você gostaria que, de cada vez que movesse a barra, o objecto que ajustasse o volume fosse notificado. Uma ligação entre um emissor e um receptor. </para> + +<para +>O &MCOP; lida com isso, sendo capaz de oferecer notificações de cada vez que os atributos são alterados. Tudo o que for declarado como <quote +>atributo</quote +> na &IDL;, pode emitir essas notificações de alterações, e devê-lo-á fazer, sempre que for modificado. Tudo o que for declarado como <quote +>atributo</quote +> poderá também receber essas notificações de alteração. Por isso, se por exemplo tiver duas interfaces de &IDL;, como as seguintes: </para> + +<programlisting +>interface BarraDeslizante { + attribute long min,max; + attribute long posicao; + }; + interface ControloVolume : Arts::StereoEffect { + attribute long volume; // 0..100 + }; +</programlisting> + +<para +>Você podê-las-á ligar com as notificações de alteração. Isto funciona usando a operação normal de 'connect' do sistema de fluxo. Neste caso, o código de C++ para ligar dois objectos deverá ser semelhante ao seguinte: </para> + +<programlisting +>#include <connect.h> +using namespace Arts; +[...] +connect(barra,"posicao_changed",controlo_Volume,"volume"); +</programlisting> + +<para +>Como pode ver, cada atributo oferece duas sequências diferentes, uma para enviar as notificações de alteração, chamada de <function +><replaceable +>nome-atributo</replaceable +>_changed</function +>, e outra para receber as notificações de alteração, chamada <function +>nome-atributo</function +>. </para> + +<para +>É importante saber que as notificações de alteração e as sequências assíncronas são compatíveis. São também transparentes na rede. Por isso, você consegue ligar uma notificação de alteração de um atributo 'float' de um elemento &GUI; a uma sequência assíncrona de um módulo de síntese a correr noutro computador. Isto, obviamente, implica que as notificações de alteração <emphasis +>não sejam síncronas</emphasis +>, o que significa que, depois de ter enviado a notificação de alteração, poderá levar algum tempo até que esta seja de facto recebida. </para> + +<sect2 id="sending-change-notifications"> + +<title +>Enviar as notificações de alterações</title> + +<para +>Ao implementar objectos que tenham atributos, você precisa de enviar as notificações de alteração sempre que um dado atributo muda. O código para o fazer é semelhante ao seguinte: </para> + +<programlisting +>void KPoti_impl::valor(float novoValor) + { + if(novoValor != _valor) + { + _valor = novoValor; + valor_changed(novoValor); // <- envia a notificação de alteração + } + } +</programlisting> + +<para +>É bastante recomendado que use código deste género para todos os objectos que implementar, de modo a que as notificações de alterações possam ser usadas pelas outras pessoas. Você deverá, contudo, evitar o envio das notificações com demasiada frequências, por isso, se estiver a fazer processamento de sinal, é provavelmente melhor que você mantenha um registo de quando enviou a sua última notificação, para que não envie uma com cada uma das amostras que processar. </para> + +</sect2> + +<sect2 id="change-notifications-apps"> +<title +>Aplicações para as notificações de alteração</title> + +<para +>Será especialmente útil usar as notificações de alteração em conjunto com os osciloscópios (as coisas que visualizam os dados de áudio, por exemplo), os elementos gráficos, elementos de controlo e na monitorização. O código que usa isto está em <filename class="directory" +>tdelibs/arts/tests</filename +> e na implementação experimental do 'artsgui', que poderá encontrar em <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 +>O ficheiro <literal role="extension" +>.mcoprc</literal +></title> + +<para +>O ficheiro <literal role="extension" +>.mcoprc</literal +> (na pasta pessoal de cada utilizador) poderá ser usado para configurar o &MCOP; em alguns aspectos. De momento, é possível o seguinte: </para> + +<variablelist> + +<varlistentry> +<term +>GlobalComm</term> +<listitem> +<para +>O nome de uma interface a usar para a comunicação global. A comunicação global é usada para procurar os outros objectos e obter o 'cookie' secreto. Vários clientes/servidores de &MCOP; que deverão ser capazes de falar entre si precisam de ter um objecto 'GlobalComm' que seja capaz de partilhar informações entre eles. De momento, os valores possíveis são o <quote +>Arts::TmpGlobalComm</quote +> para comunicar através da pasta <filename class="directory" +>/tmp/mcop-<replaceable +>utilizador</replaceable +></filename +> (que irá funcionar apenas no computador local) ou o <quote +>Arts::X11GlobalComm</quote +> para comunicar através das propriedades da janela de topo do servidor X11. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>TraderPath</term> + +<listitem> +<para +>Indica onde procurar pela informação do mediador. Você poderá indicar aqui mais do que uma pasta, separando as pastas com vírgulas, como no exemplo </para> +</listitem> + +</varlistentry> + +<varlistentry> +<term +>ExtensionPath</term> + +<listitem> +<para +>Indica a partir de que pastas é que as extensões (na forma de bibliotecas dinâmicas) são carregadas. Podem ser indicados vários valores, separados por vírgulas. </para> +</listitem> + +</varlistentry> +</variablelist> + +<para +>Um exemplo que usa tudo isso é o seguinte: </para> + +<programlisting +># Ficheiro $HOME/.mcoprc +GlobalComm=Arts::X11GlobalComm + +# se você é um programador, será útil adicionar uma pasta na sua área +# para que a localização do(a) mediador/extensão sejam capazes de adicionar +# componentes sem os instalar +TraderPath="/opt/kde2/lib/mcop","/home/ze/mcop_desenvolvimento/mcop" +ExtensionPath="/opt/kde2/lib","/home/ze/mcop_desenvolvimento/lib" +</programlisting> + +</sect1> + +<sect1 id="mcop-for-corba-users"> +<title +>O &MCOP; para os Utilizadores de <acronym +>CORBA</acronym +></title> + +<para +>Se já usou o <acronym +>CORBA</acronym +> antes, irá concluir que o &MCOP; é muito parecido, de facto. De facto, o &arts;, antes da versão 0.4 usava o <acronym +>CORBA</acronym +>. </para> + +<para +>A ideia básica do <acronym +>CORBA</acronym +> é a mesma: você implementa os objectos (componentes). Se usar as funcionalidades do &MCOP;, os seus objectos não estão só disponíveis como classes normais do mesmo processo (através das técnicas normais do C++) - eles passam a estar disponíveis de forma transparente para os servidores remotos. Para isto funcionar, a primeira coisa que precisa de fazer é indicar a interface dos seus objectos num ficheiro &IDL; - tal como na &IDL; do <acronym +>CORBA</acronym +>. Existem apenas algumas diferenças. </para> + +<sect2 id="corba-missing"> +<title +>Funcionalidades do <acronym +>CORBA</acronym +> que Faltam no &MCOP;</title> + +<para +>No &MCOP; não existem parâmetros <quote +>in</quote +> e <quote +>out</quote +> nas invocações dos métodos. Os parâmetros são sempre de entrada e o código devolvido é sempre de saída, o que significa que a interface: </para> + +<programlisting +>// idl de CORBA +interface Conta { + void depositar( in long quantia ); + void levantar( in long quantia ); + long saldo(); +}; +</programlisting> + +<para +>é escrito como </para> + +<programlisting +>// idl de MCOP +interface Conta { + void depositar( long quantia ); + void levantar( long quantia ); + long saldo(); +}; +</programlisting> + +<para +>no &MCOP;. </para> + +<para +>Não existe o suporte de excepções. O &MCOP; não tem excepções - ele usa algo de diferente para o tratamento de erros. </para> + +<para +>Não existem tipos 'union' nem 'typedef's. Não se sabe se é uma falha de facto, algo que uma pessoa necessitasse desesperadamente para sobreviver. </para> + +<para +>Não existe suporte para passar referências a interfaces ou objectos </para> + +</sect2> + +<sect2 id="corba-different"> +<title +>Funcionalidades do <acronym +>CORBA</acronym +> que São Diferentes no &MCOP;</title> + +<para +>Você declara as sequências como <quote +>sequence<replaceable +>tipo</replaceable +></quote +> no &MCOP;. Não existe necessidade de um 'typedef'. Por exemplo, em vez de: </para> + +<programlisting +>// CORBA idl +struct Linha { + long x1,y1,x2,y2; +}; +typedef sequence<Linha> Linhas; +interface Desenhador { + void desenhar(in Linhas linhas); +}; +</programlisting> + +<para +>você iria descrever </para> + +<programlisting +>// IDL de MCOP +struct Linha { + long x1,y1,x2,y2; +}; +interface Desenhador { + void desenhar(sequence<Linha> linhas); +}; +</programlisting> + +</sect2> + +<sect2 id="no-in-corba"> +<title +>Funcionalidades do &MCOP; Que Não Estão no <acronym +>CORBA</acronym +></title> + +<para +>Você pode declarar as sequências que serão então avaliadas pela plataforma do &arts;. As sequências são declaradas de forma semelhante aos atributos. Por exemplo: </para> + +<programlisting +>// MCOP idl +interface Synth_ADICIONAR : SynthModule { + in audio stream sinal1,sinal2; + out audio stream saida; +}; +</programlisting> + +<para +>Isto diz que o seu objecto irá aceitar duas sequências síncronas de áudio chamadas 'sinal1' e 'sinal2'. Por síncronas significa que são sequências que distribuem 'x' amostras por segundo (ou por outro período), de modo a que o escalonador garanta que lhe fornecerá uma quantidade balanceada de dados de entrada (⪚ existem 200 amostras de 'sinal1' para 200 amostras de 'sinal2'). Você garante que, se o seu objectivo for chamado com essas 200 amostras de 'sinal1' e 'sinal2', será capaz de produzir exactamente 200 amostras de 'saida'. </para> + +</sect2> + +<sect2 id="mcop-binding"> +<title +>A Interface para a Linguagem C++ do &MCOP;</title> + +<para +>Isto difere do <acronym +>CORBA</acronym +> principalmente: </para> + +<itemizedlist> +<listitem> +<para +>As cadeias de caracteres usam a classe de C++ do <acronym +>STL</acronym +> <classname +>string</classname +>. Quando é armazenado nas sequências, elas são armazenadas <quote +>tal-e-qual</quote +>, o que significa que são consideradas como sendo um tipo primitivo. Deste modo, elas precisam de ser copiadas. </para> +</listitem> + +<listitem> +<para +>os 'long's são 'long's normais (contando que são de 32 bits). </para> +</listitem> + +<listitem> +<para +>As sequências usam a classe de C++ do <acronym +>STL</acronym +> <classname +>vector</classname +>. </para> +</listitem> + +<listitem> +<para +>As estruturas são todas derivadas da classe do &MCOP; <classname +>Type</classname +>, e são geradas no compilador de &IDL; do &MCOP;. Quando forem armazenadas em sequências, elas não serão guardadas <quote +>tal-e-qual</quote +> , mas sim como referências porque, caso contrário, iriam ocorrer várias cópias. </para> +</listitem> +</itemizedlist> +</sect2> + +<sect2 id="implementing-objects"> +<title +>Implementar os Objectos do &MCOP;</title> + +<para +>Depois de passar as interfaces pelo compilador de &IDL;, você precisa de derivar da classe <classname +>_skel</classname +>. Por exemplo, assuma que definiu a sua interface da seguinte forma: </para> + +<programlisting +>// IDL do MCOP: ola.idl +interface Ola { + void Ola(string s); + string concatenar(string s1, string s2); + long somar2(long a, long b); +}; +</programlisting> + +<para +>Você pode passar isso pelo compilador de &IDL;, invocando o comando <userinput +><command +>mcopidl</command +> <parameter +>ola.idl</parameter +></userinput +>, o que por sua vez irá gerar o <filename +>ola.cc</filename +> e o <filename +>ola.h</filename +>. Para o implementar, você precisa de definir uma classe de C++ que herde do esqueleto: </para> + +<programlisting +>// ficheiro de inclusão de C++ - inclua o ola.h algures +class Ola_impl : virtual public Ola_skel { +public: + void ola(const string& s); + string concatenar(const string& s1, const string& s2); + long somar2(long a, long b); +}; +</programlisting> + +<para +>Finalmente, você terá de implementar os métodos como C++ normal </para> + +<programlisting +>// ficheiro de implementação de C++ + +// como pode ver, as 'string's são passadas como referências de 'const string' +void Ola_impl::ola(const string& s) +{ + printf("Ola '%s'!\n",s.c_str()); +} + +// quando têm um valor a devolver são passadas como cadeias de caracteres normais +string Ola_impl::concatenar(const string& s1, const string& s2) +{ + return s1+s2; +} + +long Ola_impl::somar2(long a, long b) +{ + return a+b; +} +</programlisting> + +<para +>Logo que faça isso, você terá um objecto que poderá comunicar usando o &MCOP;. Basta criar um (usando as funcionalidades normais do C++ para criar um objecto): </para> + +<programlisting +>Servidor do Ola_impl; +</programlisting> + +<para +>E assim que dê a alguém a referência </para> + +<programlisting +>string referencia = servidor._toString(); + printf("%s\n",referencia.c_str()); +</programlisting> + +<para +>e ir à ciclo de inactividade do &MCOP; </para> + +<programlisting +>Dispatcher::the()->run(); +</programlisting> + +<para +>As pessoas podem aceder à coisa usando </para> + +<programlisting +>// este código poderá correr em qualquer lado - não necessariamente no mesmo +// processo (poderá também correr num computador/arquitectura diferentes) + + Ola *h = Ola::_fromString([a referência do objecto impressa acima]); +</programlisting> + +<para +>e invocar os métodos: </para> + +<programlisting +>if(h) + h->ola("teste"); + else + printf("O acesso falhou?\n"); +</programlisting> + +</sect2> +</sect1> + +<sect1 id="mcop-security"> +<title +>Considerações de Segurança do &MCOP;</title> + +<para +>Dado que os servidores de &MCOP; irão atender os pedidos num porto de <acronym +>TCP</acronym +>, potencialmente toda a gente (se você estiver na Internet) poderá tentar ligar-se aos serviços do &MCOP;. Por isso, é importante autenticar os clientes. O &MCOP; usa o protocolo 'md5-auth'. </para> + +<para +>O protocolo 'md5-auth' faz o seguinte para garantir que só os clientes seleccionados (de confiança) se poderão ligar a um servidor: </para> + +<itemizedlist> +<listitem> +<para +>Ele assume que você dá a todos os clientes um 'cookie' secreto. </para> +</listitem> + +<listitem> +<para +>De cada vez que um cliente se liga, ele verifica se o cliente conhece esse 'cookie' secreto, sem o transferir de facto (nem sequer de forma a que alguém que esteja a escutar o tráfego de rede o possa descobrir). </para> +</listitem> + +</itemizedlist> + +<para +>Para dar a cada cliente esse 'cookie' secreto, o &MCOP; irá (normalmente) colocá-lo na pasta <filename class="directory" +>mcop</filename +> (em <filename class="directory" +>/tmp/mcop-<envar +>USER</envar +>/secret-cookie</filename +>). Claro, você podê-lo-á copiar para outros computadores. Contudo, se o fizer, use um mecanismo de transferência seguro, como o <command +>scp</command +> (do <application +>ssh</application +>). </para> + +<para +>A autenticação dos clientes usa os seguintes passos: </para> + +<procedure> +<step> +<para +>[SERVIDOR] gera um 'cookie' novo (aleatório) R </para> +</step> + +<step> +<para +>[SERVIDOR] envia-o para o cliente </para> +</step> + +<step> +<para +>[CLIENTE] lê o "cookie secreto" S de um ficheiro </para> +</step> + +<step> +<para +>[CLIENTE] baralha os 'cookies' R e S para um 'cookie' baralhado M usando o algoritmo MD5 </para> +</step> + +<step> +<para +>[CLIENTE] envia o M para o servidor </para> +</step> + +<step> +<para +>[SERVIDOR] verifica que, ao baralhar o R e o S dará o mesmo resultado que o 'cookie' M recebido do cliente. Em caso afirmativo, a autenticação foi bem-sucedida. </para> +</step> + +</procedure> + +<para +>Este algoritmo deverá ser seguro, atendendo a que </para> + +<orderedlist> +<listitem> +<para +>Os 'cookies' secretos e os aleatórios são <quote +>aleatórios quanto baste</quote +> e </para> +</listitem> + +<listitem> +<para +>O algoritmo de dispersão do MD5 não permite descobrir o <quote +>texto original</quote +>, que é o 'cookie' secreto S e o 'cookie' aleatório R (o qual é conhecido, de qualquer forma), a partir do 'cookie' baralhado M. </para> +</listitem> +</orderedlist> + +<para +>O protocolo &MCOP; irá começar todas as ligações novas com um processo de autenticação. Basicamente, assemelha-se ao seguinte: </para> + +<procedure> + +<step> +<para +>O servidor envia uma mensagem ServerHello que descreve os protocolos de autenticação conhecidos. </para> +</step> + +<step> +<para +>O cliente envia uma mensagem ClientHello que inclui a informação de autenticação. </para> +</step> + +<step> +<para +>O servidor envia uma mensagem AuthAccept. </para> +</step> +</procedure> + +<para +>Para verificar se a segurança funciona de facto, deverá ver como é que as mensagens se processam nas ligações não-autenticadas: </para> + +<itemizedlist> +<listitem> +<para +>Antes de a autenticação ser bem sucedida, o servidor não irá receber outras mensagens da ligação. Em vez disso, se o servidor por exemplo estiver à espera de uma mensagem <quote +>ClientHello</quote +> e obtiver uma mensagem de 'mcopInvocation', irá quebrar a ligação. </para> +</listitem> + +<listitem> +<para +>Se o cliente não enviar uma mensagem de &MCOP; válida de todo (sem o código especial do &MCOP; no cabeçalho da mensagem) na fase de autenticação, mas sim outra coisa qualquer, a ligação é quebrada. </para> +</listitem> + +<listitem> +<para +>Se o cliente tentar enviar uma mensagem mesmo muito grande (> 4096 bytes na fase de autenticação, o tamanho da mensagem é truncado para 0 bytes, o que fará com que não seja aceite para a autenticação). Isto é para evitar que os clientes não-autenticados enviem mensagens de ⪚ 100 megabytes, o que faria com que fosse recebida e com que o servidor estoirasse com falta de memória. </para> +</listitem> + +<listitem> +<para +>Se o cliente enviar uma mensagem ClientHello corrompida (uma, onde a descodificação falhe), a ligação é mais uma vez quebrada. </para> +</listitem> + +<listitem> +<para +>Se o cliente não enviar nada de nada, então ocorrerá a expiração de um tempo-limite (ainda por implementar). </para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="mcop-protocol"> +<title +>Especificação do Protocolo &MCOP;</title> + +<sect2 id="mcop-protocol-intro"> +<title +>Introdução</title> + +<para +>Tem semelhanças conceptuais ao <acronym +>CORBA</acronym +>, mas pretende extendê-lo de todas as formas necessárias para as operações multimédia em tempo-real. </para> + +<para +>Oferece um modelo de objectos multimédia, o qual poderá ser usado para: a comunicação entre os componentes num espaço de endereçamento (um processo) e entre componentes que existam em tarefas, processos ou mesmo máquinas diferentes. </para> + +<para +>Tudo junto, será desenhado para uma performance extremamente alta (de modo a que tudo seja optimizado para ser extremamente rápido), o que é adequado para as aplicações multimédia bastante comunicativas. Por exemplo, a transmissão de vídeos é uma das aplicações do &MCOP;, onde a maioria das implementações de <acronym +>CORBA</acronym +> 'cairiam de joelhos'. </para> + +<para +>As definições das interfaces conseguem lidar com as seguintes coisas nativamente: </para> + +<itemizedlist> +<listitem> +<para +>Sequências contínuas de dados (como os dados de áudio). </para> +</listitem> + +<listitem> +<para +>Sequências de dados de eventos (como os eventos do &MIDI;). </para> +</listitem> + +<listitem> +<para +>Contagem de referências real. </para> +</listitem> +</itemizedlist> + +<para +>e os truques mais importantes do <acronym +>CORBA</acronym +>, como </para> + +<itemizedlist> +<listitem> +<para +>As invocações síncronas de métodos. </para> +</listitem> + +<listitem> +<para +>As invocações de métodos assíncronas. </para> +</listitem> + +<listitem> +<para +>A construção de tipos de dados definidos pelo utilizador. </para> +</listitem> + +<listitem> +<para +>Herança múltipla. </para> +</listitem> + +<listitem> +<para +>A passagem de referências de objectos. </para> +</listitem> +</itemizedlist> + +</sect2> + +<sect2 id="mcop-protocol-marshalling"> +<title +>A Codificação das Mensagens do &MCOP;</title> + +<para +>Objectivos/ideias de desenho: </para> + +<itemizedlist> + +<listitem> +<para +>A codificação deverá ser simples de implementar. </para> +</listitem> + +<listitem> +<para +>A descodificação necessita que o destinatário saiba qual é o tipo que ele deseja descodificar. </para> +</listitem> + +<listitem> +<para +>O destinatário está à espera de usar toda a informação - por isso, só são ignorados os dados no protocolo ao nível em que: </para> + +<itemizedlist> +<listitem> +<para +>Se você souber que vai receber um bloco de 'bytes', não precisa de olhar para cada 'byte', à procura de um marcador de fim. </para> +</listitem> + +<listitem> +<para +>Se você souber que vai receber uma cadeia de caracteres, não precisa de a ler até encontrar o 'byte' zero para descobrir o seu tamanho, contudo, </para> +</listitem> + +<listitem> +<para +>Se você souber que vai receber uma sequência de cadeias de caracteres, você precisa de saber o tamanho de cada uma delas para descobrir o fim da sequência, dado que as cadeias de caracteres têm tamanho variável. Mas se você usar as cadeias de caracteres para algo útil, você terá de o fazer à mesma, por isso não se perde nada. </para> +</listitem> +</itemizedlist> + +</listitem> + +<listitem> +<para +>O mínimo de sobrecarga possível. </para> +</listitem> +</itemizedlist> + +<!-- TODO: Make this a table --> + +<para +>A codificação dos diferentes tipos é mostrada na tabela em baixo: </para> + +<informaltable> +<tgroup cols="3"> +<thead> +<row> +<entry +>Tipo</entry> +<entry +>Processo de Codificação</entry> +<entry +>Resultado</entry> +</row> +</thead> + +<tbody> +<row> +<entry +><type +>void</type +></entry> +<entry +>Os tipos <type +>void</type +> são codificados, omitindo-os, de modo a que e não seja nada escrito no canal.</entry> +<entry +></entry> +</row> + +<row> +<entry +><type +>long</type +></entry> +<entry +>é codificado como 4 'bytes', em que o 'byte' mais significativo vem primeiro, de modo a que o número 10001025 (correspondente a 0x989a81) será codificado como:</entry> +<entry +><literal +>0x00 0x98 0x9a 0x81</literal +></entry> +</row> + +<row> +<entry +><type +>enums</type +></entry> +<entry +><para +>são codificados como <type +>long</type +>s</para +></entry> +<entry +></entry> +</row> + +<row> +<entry +><type +>byte</type +></entry> +<entry +><para +>é codificado como um único 'byte', de modo a que o 'byte' 0x42 será codificado como:</para +></entry> +<entry +><literal +>0x42</literal +></entry> +</row> + +<row> +<entry +><type +>string</type +></entry> +<entry +><para +>é codificado como um <type +>long</type +>, contendo o tamanho da cadeia de caracteres seguinte, e pela sequência de caracteres propriamente dita, terminando com um 'byte' a zeros (que está incluído na contagem do tamanho).</para> +<important> +<para +>inclui o 'byte' 0 final na contagem do tamanho!</para> +</important> +<para +>O <quote +>ola</quote +> seria codificado da seguinte forma:</para +></entry> +<entry +><literal +>0x00 0x00 0x00 0x04 0x6f 0x6c 0x60 0x00</literal +></entry> +</row> + +<row> +<entry +><type +>boolean</type +></entry> +<entry +><para +>é codificado como um 'byte', contendo 0 se for <returnvalue +>false</returnvalue +> (falso) ou 1 se for <returnvalue +>true</returnvalue +> (verdadeiro), de modo a que o valor booleano <returnvalue +>true</returnvalue +> é codificado como:</para +></entry> +<entry +><literal +>0x01</literal +></entry> +</row> + +<row> +<entry +><type +>float</type +></entry> +<entry +><para +>é codificado na representação de 4 'bytes' do IEEE754 - a documentação detalhada de como o IEEE funciona estão aqui: <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 +> e aqui: <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 +>. Deste modo, o valor 2,15 seria codificado como:</para +></entry> +<entry +><literal +>0x9a 0x99 0x09 0x40</literal +></entry> +</row> + +<row> +<entry +><type +>'struct'</type +></entry> +<entry +><para +>Uma estrutura é codificada com base no seu conteúdo. Não existem prefixos ou sufixos adicionais, por isso a estrutura </para> +<programlisting +>struct teste { + string nome; // que é igual a "ola" + long valor; // que é igual a 10001025 (0x989a81) +}; +</programlisting> +<para +>seria codificada como</para +></entry> +<entry> +<literallayout +>0x00 0x00 0x00 0x04 0x6f 0x6c 0x60 0x00 +0x00 0x98 0x9a 0x81 +</literallayout +></entry> +</row> + +<row> +<entry +><type +>sequência</type +></entry> +<entry +><para +>uma sequência é codificada através da listagem do número de elementos que se seguem e da descodificação dos elementos, um a um.</para> +<para +>Por isso uma sequência de 3 'longs' 'a', with a[0] = 0x12345678, a[1] = 0x01 e a[2] = 0x42 seria codificada 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 +>Se você precisar de fazer referência a um tipo, todos os tipos primitivos são referidos pelos nomes indicados acima. As estruturas e os enumerados têm nomes próprios (como Header). As sequências são referidas como um *<replaceable +>tipo normal</replaceable +>, de modo que uma sequência de 'longs' é um <quote +>*long</quote +> e uma sequência de estruturas Header é um <quote +>*Header</quote +>. </para> + +</sect2> + +<sect2 id="mcop-protocol-messages"> +<title +>Mensagens</title> + +<para +>O formato do cabeçalho das mensagens do &MCOP; está definido pela estrutura seguinte: </para> + +<programlisting +>struct Header { + long magic; // o valor 0x4d434f50, que é codificado como MCOP + long messageLength; + long messageType; +}; +</programlisting> + +<para +>Os valores possíveis de messageTypes são, de momento </para> + +<programlisting +>mcopServerHello = 1 + mcopClientHello = 2 + mcopAuthAccept = 3 + mcopInvocation = 4 + mcopReturn = 5 + mcopOnewayInvocation = 6 +</programlisting> + +<para +>Algumas notas acerca das mensagens do &MCOP;: </para> + + +<itemizedlist> +<listitem> +<para +>Todas as mensagens começam com uma estrutura Header. </para> +</listitem> + +<listitem> +<para +>Alguns dos tipos de mensagens deverão ser ignorados pelo servidor, enquanto a autenticação não estiver completa. </para> +</listitem> + +<listitem> +<para +>Depois de receber o cabeçalho, o tratamento do protocolo (ligação) poderá receber a mensagem por completo, sem olhar para o seu conteúdo. </para> +</listitem> +</itemizedlist> + +<para +>O 'messageLength' no cabeçalho é, obviamente em alguns casos, redundante, o que significa que esta aproximação não é minimalista no que respeita ao número de 'bytes'. </para> + +<para +>Contudo, conduz a uma implementação simples (e rápida) do processamento não-bloqueante de mensagens. Com a ajuda do cabeçalho, as mensagens poderão ser recebidas pelas classes de tratamento do protocolo em segundo plano (não-bloqueante), se existirem demasiadas ligações ao servidor, todas elas poderão ser servidas em paralelo. Você não precisa de olhar para o conteúdo da mensagem para a receber (e para determinar que terminou), basta olhar para o cabeçalho, por isso o código para isso é relativamente simples. </para> + +<para +>Logo que esteja lá uma mensagem, esta poderá ser descodificada e processada num único passo, sem se preocupar com os casos em que nem todos os dados foram recebidos (porque o 'messageLength' garante que está lá tudo). </para> + +</sect2> + +<sect2 id="mcop-protocol-invocations"> +<title +>Invocações</title> + +<para +>Para invocar um método remoto, você precisa de enviar a seguinte estrutura no corpo de uma mensagem de &MCOP; com o messageType = 1 (mcopInvocation): </para> + +<programlisting +>struct Invocation { + long objectID; + long methodID; + long requestID; +}; +</programlisting> + +<para +>depois disso, você envia os parâmetros como uma estrutura, ⪚ se você invocar o método 'concatenar(string s1, string s2)', você envia uma estrutura do tipo </para> + +<programlisting +>struct InvocationBody { + string s1; + string s2; +}; +</programlisting> + + +<para +>se o método foi declarado como 'só de ida0 - o que significa que é assíncrono sem código devolvido - então é tudo. Caso contrário, você iria receber como resposta uma mensagem com o messageType = 2 (mcopReturn) </para> + +<programlisting +>struct ReturnCode { + long requestID; + <tipo-a-devolver> result; +}; +</programlisting> + + +<para +>em que o <tipo-a-devolver> é o tipo do resultado. Como os tipos 'void' são omitidos na codificação, você também poderá só escrever o 'requestID' se regressar de um método 'void'. </para> + +<para +>Por isso o nosso método 'string concatenar(string s1, string s2)' iria originar um código de resultado do tipo </para> + +<programlisting +>struct ReturnCode { + long requestID; + string result; +}; +</programlisting> + +</sect2> + +<sect2 id="mcop-protocol-inspecting"> +<title +>Inspeccionar as Interfaces</title> + +<para +>Para fazer as invocações, você teria de conhecer os métodos que um objecto suporta. Para o fazer, o 'methodID' 0, 1, 2 e 3 estão pré-destinados a certas funcionalidades. Isto é </para> + +<programlisting +>long _lookupMethod(MethodDef defMetodo); // methodID sempre a 0 +string _interfaceName(); // methodID sempre a 1 +InterfaceDef _queryInterface(string nome); // methodID sempre a 2 +TypeDef _queryType(string nome); // methodID sempre a 3 +</programlisting> + +<para +>para ler isso, você obviamente precisa de </para> + +<programlisting +>struct MethodDef { + string methodName; + string type; + long flags; // posto a 0 por agora (será necessário na transmissão) + sequence<ParamDef> signature; +}; + +struct ParamDef { + string name; + long typeCode; +}; +</programlisting> + +<para +>o campo 'parameters' contém os componentes do tipo que indicam os tipos dos parâmetros. O tipo do valor devolvido é indicado no campo 'type' do MethodDef. </para> + +<para +>De forma restrita, só os métodos <methodname +>_lookupMethod()</methodname +> e <methodname +>_interfaceName()</methodname +> são diferentes de objecto para objecto, enquanto que o <methodname +>_queryInterface()</methodname +> e o <methodname +>_queryType()</methodname +> são sempre os mesmos. </para> + +<para +>O que são esses methodIDs? Se você fizer uma invocação de &MCOP;, irá ficar à espera de passar um número para o método que você está a invocar. A razão para tal é que os números podem ser processados muito mais depressa do que as cadeias de caracteres ao executar um pedido de &MCOP;. </para> + +<para +>Por isso, como é que obtém esses números? Se você souber a assinatura do método, existe um MethodDef que descreve o método (e que contém o nome, o tipo, os nomes e os tipos de parâmetros, entre outras coisas) e você poderá passar isso ao '_lookupMethod' do objecto onde deseja invocar um método. Dado que o '_lookupMethod' está pré-associado ao 'methodID' 0, você não deverá ter problemas ao fazê-lo. </para> + +<para +>Por outro lado, se você não souber a assinatura do método, você poderá descobrir os métodos que são suportados, usando o '_interfaceName', o '_queryInterface' e o '_queryType'. </para> +</sect2> + +<sect2 id="mcop-protocol-typedefs"> +<title +>Definições dos Tipos</title> + +<para +>Os tipos de dados definidos pelo utilizador são descritos com a estrutura <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 +>Porque é que o &arts; Não Usa o &DCOP;</title> + +<para +>Dado que o &kde; largou o <acronym +>CORBA</acronym +> por completo e está a usar o &DCOP; em todo o lado, naturalmente a questão levantar-se-á: 'porque é que o &arts; não o faz também?'. No fim de tudo, o suporte do &DCOP; está no <classname +>KApplication</classname +>, é bem-mantido, supostamente integra-se bem com a libICE, entre outras coisas. </para> + +<para +>Dado que existirá (potencialmente) uma grande quantidade de pessoas a perguntar se ter o &MCOP; para além do &DCOP; é realmente necessário, aqui está a resposta. Não levem o autor a mal, porque não está a dizer <quote +>o &DCOP; é mau</quote +>. Simplesmente quer dizer <quote +>o &DCOP; não é a solução adequada para o &arts;</quote +> (embora seja uma boa solução para outras coisas). </para> + +<para +>Primeiro, você precisa de compreender para que é que o &DCOP; foi criado. Desenvolvido em dois dias durante o encontro &kde;-TWO, pretendia ser o mais simples possível, um protocolo de comunicações realmente <quote +>leve</quote +>. Especialmente, a implementação descartou tudo o que pudesse envolver complexidade, como por exemplo um conceito completo de como os tipos de dados seriam codificados. </para> + +<para +>Ainda que o &DCOP; não se preocupe com certas coisas (por exemplo: como é que se envia uma cadeia de caracteres de forma transparente na rede?) - isso precisa de ser feito. Por isso, tudo o que o &DCOP; não faz, fica a cargo do &Qt; nas aplicações do &kde; que usam o &DCOP; hoje em dia. Isto é em grande parte gestão de tipos (usando o operador de serialização do &Qt;). </para> + +<para +>Por isso, o &DCOP; é um protocolo mínimo que permite perfeitamente às aplicações do &kde; enviarem mensagens simples do tipo <quote +>abrir uma janela a apontar para http://www.kde.org</quote +> ou <quote +>os seus dados de configuração mudaram</quote +>. Contudo, dentro do &arts; o foco situa-se noutras coisas. </para> + +<para +>A ideia é que alguns pequenos 'plugins' do &arts; irão comunicar, trocando algumas estruturas de dados como <quote +>eventos MIDI</quote +> e <quote +>ponteiros de posição na música</quote +> ou <quote +>grafos de fluxo</quote +>. </para> + +<para +>Estes são tipos de dados complexos, os quais deverão ser enviados entre objectos diferentes e passados como sequências ou parâmetros. O &MCOP; fornece um conceito de tipos para definir dados complexos a partir de dados mais simples (de forma semelhante às estruturas ou vectores no C++). O &DCOP; não se preocupa com os tipos de todo, por isso este problema seria deixado para o programador - como: criar classes de C++ para os tipos, certificando-se que eles pudessem serializar-se correctamente (por exemplo: suportar o operador de transmissão do &Qt;). </para> + +<para +>Mas desta forma, eles seriam inacessíveis a tudo o que não fosse codificação directa de C++. Especificamente, você não poderia desenhar uma linguagem de 'scripting' que conhecesse todos os 'plugins' de tipo que poderão estar expostos, dado que eles não se descrevem a si próprios. </para> + +<para +>O mesmo argumento se aplica também às interfaces. Os objectos do &DCOP; não expõem as suas relações, hierarquias de herança, etc. - se você fosse criar um navegador de objectos que lhe mostrasse <quote +>que atributos tem tido este objecto</quote +>, seria mal-sucedido. </para> + + +<para +>Embora o Matthias tenha dito que existe uma função especial <quote +>functions</quote +> em cada objecto que lhe indica os métodos que um dado objecto suporta, isto deixa de fora coisas como os atributos (propriedades), as sequências e as relações de herança. </para> + +<para +>Isto quebra seriamente as aplicações como o &arts-builder;. Mas lembre-se. o &DCOP; não pretendia ser um modelo de objectos (dado que o &Qt; já tem um com o <application +>moc</application +> e semelhantes), nem pretende ser algo semelhante ao <acronym +>CORBA</acronym +>, mas simplesmente uma forma de fornecer comunicação entre aplicações. </para> + +<para +>Porque ainda o &MCOP; existe é: deverá funcionar perfeitamente com canais entre objectos. O &arts; faz um uso intensivo de pequenos 'plugins', que se interligam entre si com as sequências. A versão em <acronym +>CORBA</acronym +> do &arts; tinha de introduzir uma divisão muito incómoda entre <quote +>os objectos SynthModule</quote +>, os quais eram os módulos de trabalho internos que faziam a transmissão e <quote +>a interface <acronym +>CORBA</acronym +></quote +>, que era algo externo. </para> + +<para +>Muito do código preocupava-se em fazer a interacção entre <quote +>os objectos SynthModule</quote +> e <quote +>a interface <acronym +>CORBA</acronym +></quote +> parecer natural, mas não o era, porque o <acronym +>CORBA</acronym +> não sabia nada de nada sobre as sequências. O &MCOP; sabe. Olhe para o código (algo como o <filename +>simplesoundserver_impl.cc</filename +>). Muito melhor! As sequências podem ser declaradas na interface dos módulos e implementadas de forma natural. </para> + +<para +>Ninguém o pode negar. Uma das razões pela qual o &MCOP; foi feito foi a velocidade. Aqui estão alguns argumentos porque é que o &MCOP; será definitivamente mais rápido que o &DCOP; (sem sequer mostrar imagens). </para> + + +<para +>Uma invocação do &MCOP; terá um cabeçalho com seis <quote +>long</quote +>s. Isto é: </para> + +<itemizedlist> +<listitem +><para +>o código do <quote +>MCOP</quote +></para +></listitem> +<listitem +><para +>o tipo da mensagem (invocação)</para +></listitem> +<listitem +><para +>o tamanho do pedido em 'bytes'</para +></listitem> +<listitem +><para +>ID do pedido</para +></listitem> +<listitem +><para +>ID do objecto de destino</para +></listitem> +<listitem +><para +>ID do método de destino</para +></listitem> +</itemizedlist> + +<para +>Depois disso, seguem-se os parâmetros. Repare que a descodificação destes é extremamente rápida. Você poderá usar pesquisas em tabelas para encontrar o objecto e a função de descodificação do método, o que significa que a complexidade é O(1) (levará a mesma quantidade de tempo, independentemente de quantos objectos estão vivos, ou de quantas funções existem). </para> + +<para +>Comparando isto com o &DCOP;, verá que existem, pelo menos </para> + +<itemizedlist> +<listitem +><para +>uma cadeia de caracteres para o objecto de destino - algo do tipo <quote +>aMinhaCalculadora</quote +></para +></listitem +> +<listitem +><para +>um texto do tipo <quote +>adicionarNumero(int,int)</quote +> para indicar qual o método</para +></listitem> +<listitem +><para +>muita mais informação do protocolo adicionada pela 'libICE', e outros detalhes do DCOP que o autor desconhece</para +></listitem> +</itemizedlist> + +<para +>Tudo isto é muito doloroso para descodificar, dado que você irá necessitar de processar o texto, procurar a função, &etc;. </para> + +<para +>No &DCOP;, todos os pedidos são passados através de um servidor (o <application +>DCOPServer</application +>). Isto significa que o processo de uma invocação síncrona se assemelha a: </para> + +<itemizedlist> +<listitem> +<para +>O processo do cliente envia o pedido. </para> +</listitem> + +<listitem> +<para +>O <application +>DCOPserver</application +> (o homem-no-meio) recebe a invocação e procurar onde precisa de ir, enviando para o servidor <quote +>real</quote +>. </para> +</listitem +> + +<listitem> +<para +>O processo do servidor recebe a invocação, efectua o pedido e envia o resultado. </para> +</listitem> + +<listitem> +<para +>O <application +>DCOPserver</application +> (o homem-no-meio) recebe o resultado e ... envia-o para o cliente. </para> +</listitem> + +<listitem> +<para +>O cliente descodifica a resposta. </para> +</listitem> +</itemizedlist> + +<para +>No &MCOP;, a mesma invocação assemelha-se ao seguinte: </para> + +<itemizedlist> +<listitem> +<para +>O processo do cliente envia o pedido. </para> +</listitem> + +<listitem> +<para +>O processo do servidor recebe a invocação, efectua o pedido e envia o resultado. </para> +</listitem> + +<listitem> +<para +>O cliente descodifica a resposta. </para> +</listitem> +</itemizedlist> + +<para +>Digamos que ambos foram implementados correctamente, a estratégia ponto-a-ponto do &MCOP; deverá ser mais rápida por um factor de 2, do que a estratégia do 'homem-no-meio' do &DCOP;. Repare contudo que existiam razões para escolher a estratégia do &DCOP;, nomeadamente: se você tiver 20 aplicações a correr, se cada uma estiver a falar com outra, você precisa de 20 ligações no &DCOP;, e de 200 com o &MCOP;. Contudo, no caso do multimédia, isto não suposto ser a configuração normal. </para> + +<para +>Tentou-se comparar o &MCOP; com o &DCOP;, fazendo uma invocação do tipo 'adicionar dois números'. Alterou-se o 'testdcop' para conseguir isto. Porém, o teste pode não ter sido fidedigno do lado do &DCOP;. Invocou-se o método no mesmo processo que fez a chamada para o &DCOP;, e não se soube como se ver livre de uma mensagem de depuração, pelo que foi feita redireccionamento do resultado. </para> + +<para +>O teste só usava um objecto e uma função, esperando que os resultados do &DCOP; começassem a descer com mais objectos e funções, enquanto os resultados do &MCOP; se deveriam manter iguais. Também, o processo do <application +>dcopserver</application +> não estava ligado a nenhumas outras aplicações, pelo que, se estivessem outras aplicações ligadas, a performance do encaminhamento iria decrescer. </para> + +<para +>O resultado obtido foi que, enquanto o &DCOP; obteve cerca de 2000 invocações por segundo, o &MCOP; obteve um pouco mais de 8000 invocações por segundo. Isto resulta num factor de 4. Sabe-se que o &MCOP; não está ajustado para o máximo possível, ainda. (Comparação: o <acronym +>CORBA</acronym +>, implementado no 'mico', faz algo entre 1000 e 1500 invocações por segundo). </para> + +<para +>Se você quiser dados <quote +>mais em bruto</quote +>, pense em fazer alguma aplicação de medida de performance para o &DCOP; e envie-a para o autor. </para> + +<para +>O <acronym +>CORBA</acronym +> tinha a funcionalidade interessante de que você poderia usar os objectos que você implementou uma vez, como <quote +>processos de servidor separados</quote +> ou como <quote +>bibliotecas</quote +>. Você poderia usar o mesmo código para tal, e o <acronym +>CORBA</acronym +> iria decidir de forma transparente o que fazer. Com o &DCOP;, não é realmente pretendido, e tanto quanto se sabe não é possível realmente. </para> + +<para +>O &MCOP;, por outro lado, deverá suportá-lo logo desde o início. Por isso, você poderá correr um efeito dentro do &artsd;. Mas se você for um editor de ondas, você poderá optar por correr o mesmo efeito dentro do espaço do processo. </para> + +<para +>Embora o &DCOP; sej, em grande medida, uma forma de comunicar entre as aplicações, o &MCOP; também o é. Especialmente para a transmissão multimédia, o que é importante (dado que você poderá correr vários objectos &MCOP; em paralelo, para resolver uma tarefa de multimédia na sua aplicação). </para> + +<para +>Ainda que o o &MCOP; não o faça de momento, as possibilidades estão em aberto para implementar as funcionalidades de qualidade de serviço. Algo do género <quote +>aquele evento &MIDI; é mesmo MUITO importante, em comparação com esta invocação</quote +>. Ou algo do tipo <quote +>necessita de estar ali a tempo</quote +>. </para> + +<para +>Por outro lado, a transferência de sequências poderá ser integrada no protocolo &MCOP; sem problemas e ser combinada com elementos de <acronym +>QoS</acronym +>. Dado que o protocolo poderá ser alterado, a transferência de sequências do &MCOP; não deverá ser mais lenta do que uma transmissão convencional de <acronym +>TCP</acronym +>, mas: é mais fácil e mais consistente de usar. </para> + +<para +>Não existe necessidade de basear uma plataforma de multimédia no &Qt;. Ao decidir isso, e usando toda aquela serialização e outras funcionalidades giras do &Qt;, iria conduzir facilmente a que a plataforma se tornasse apenas para o &Qt; ou (para apenas para o &kde;). Quer dizer: assim que se vir que os GNOMEs comecem a usar o &DCOP;, também, ou algo do género, provavelmente o autor ficará errado. </para> + +<para +>Enquanto se sabe que o &DCOP; basicamente não sabe nada sobre os tipos de dados que envia, de modo que você poderia usar o &DCOP; sem usar o &Qt;, veja como é que é usado na utilização do dia-a-dia do &kde;: as pessoas enviam tipos como o <classname +>QString</classname +>, o <classname +>QRect</classname +>, o <classname +>QPixmap</classname +>, o <classname +>QCString</classname +>, ..., de um lado para o outro. Estes usam a serialização do &Qt;. Por isso, se alguém optar por suportar o &DCOP; num programa do GNOME, ele teria de afirmar que usava os tipos <classname +>QString</classname +>,... (ainda que não o faça, de facto) e emular a forma como o &Qt; faz a transmissão, ou então teria de enviar outros tipos de cadeias de caracteres, imagens e rectângulos, o que deixaria de ter possibilidades de interoperabilidade. </para> + +<para +>Bem, seja o que for, o &arts; pretendeu sempre funcionar com ou sem o &kde;, com ou sem o &Qt;, com ou sem o X11, e talvez com ou sem o &Linux; (e não há problema nenhum com as pessoas que o transpõem para um sistema operativo proprietário conhecido). </para> + +<para +>É a posição do autor que os componentes não&GUI; deverão ser criados de forma independente da &GUI;, para possibilitar a partilha destes pelas quantidades maiores de programadores (e utilizadores) possível. </para> + +<para +>É óbvio que o uso de dois protocolos de <acronym +>IPC</acronym +> pode causar problemas. Ainda mais, se ambos não forem normas. Contudo, pelas razões indicadas acima, a mudança para o &DCOP; não é uma opção. Se existir um interesse significativo em encontrar uma forma de unir os dois, ok, poderemos tentar. Até poderemos tentar fazer com que o &MCOP; 'fale' <acronym +>IIOP</acronym +>, onde então poderemos passar a ter um <acronym +>ORB</acronym +> de <acronym +>CORBA</acronym +>. </para> + +<para +>Falou-se com o Matthias Ettrich um pouco sobre o futuro dos dois protocolos e encontraram-se montes de formas como as coisas poderão seguir daqui para a frente. Por exemplo, o &MCOP; poderia tratar da comunicação de mensagens no &DCOP;, colocando os protocolos um pouco mais juntos entre si. </para> + +<para +>Por isso, algumas soluções possíveis seriam: </para> + +<itemizedlist> +<listitem> +<para +>Criar uma 'gateway' de &MCOP; - &DCOP; (o qual deverá ser possível, e possibilitaria a interoperabilidade) - nota: existe um protótipo experimentar, se quiser ver algo sobre o assunto. </para> +</listitem> + +<listitem> +<para +>Integrar tudo o que os utilizadores do &DCOP; esperam no &MCOP;, e tentar apenas usar o &MCOP; - uma pessoa até poderia adicionar uma opção de <quote +>homem-no-meio</quote +> no &MCOP;, também ;) </para> +</listitem> + +<listitem> +<para +>Basear o &DCOP; no &MCOP; em vez da 'libICE', e começar a integrar lentamente as coisas em conjunto. </para> +</listitem> +</itemizedlist> + +<para +>Contudo, poderá não ser a pior possibilidade para usar cada protocolo em tudo em que se pensou usar (existem algumas grandes diferenças nos objectivos de desenho), e não vale a pena tentar juntá-los num só. </para> + +</sect1> +</chapter> diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/midi.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/midi.docbook new file mode 100644 index 00000000000..6ac91d58aa0 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/midi.docbook @@ -0,0 +1,524 @@ +<!-- <?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 +>Introdução</title> + +<!-- what-to-say-here: aRts has three roles + * moving midi events around between applications + * abstracting the hardware + * synthesizer --> + +<para +>O suporte de &MIDI; no &arts; poderá fazer uma quantidade de coisas. Primeiro que tudo, permite a <emphasis +>comunicação</emphasis +> entre as diversas peças de 'software' que produzem ou consomem eventos &MIDI;. Se você, por exemplo, tiver uma sequenciador e um reprodutor que funcionem com o &arts;, o &arts; poderá enviar os eventos &MIDI; do sequenciador para o reprodutor. </para> + +<para +>Por outro lado, o &arts; pode também ajudar as aplicações a <emphasis +>interagir com o 'hardware'</emphasis +>. Se um dado bloco de 'software' (como, por exemplo, o suporte de amostragem) funcionar em conjunto com o &arts;, ele será capaz de receber os eventos &MIDI; de um teclado &MIDI; externo, da mesma forma. </para> + +<para +>Finalmente, o &arts; dá um excelente <emphasis +>sintetizador modular</emphasis +>. Está desenhado para fazer exactamente isso. Por isso, você poderá criar instrumentos a partir de pequenos módulos com o 'artsbuilder', e usar depois esses instrumentos para compor ou tocar música. A síntese poderá não ser pura, dado que existem módulos que você poderá usar para tocar amostras. Por isso, o &arts; poderá ser um reprodutor de amostras, um sintetizador, entre outras coisas e, sendo completamente modular, é muito fácil de extender, muito fácil de experimentar, poderoso e flexível. </para> +</sect1> + +<sect1 id="midi-manager"> +<title +>O Gestor de &MIDI;</title> +<!-- what-to-say-here: + * how to use artscontrol - view midimanager + * what does autorestore do? (not yet implemented - so not yet documented) --> + +<para +>A componente central no &arts; que mantém o registo das aplicações que estão ligadas e como é que os eventos deverão ser passados entre elas é o gestor MIDI. Para ver ou influenciar o que ela faz, inicie o 'artscontrol'. Depois, escolha <menuchoice +><guilabel +>Ver</guilabel +><guilabel +>Ver o Gestor de MIDI</guilabel +> </menuchoice +> no menu. </para> + +<para +>Do lado esquerdo, você verá as <guilabel +>Entradas MIDI</guilabel +>. Aí, todos os objectos que produzam eventos &MIDI;, como por exemplo um porto &MIDI; que envie dados vindos de um teclado &MIDI; ligado, um sequenciador que toque uma música, entre outras coisas, serão aqui listados. Do lado direito, você verá as <guilabel +>Saídas MIDI</guilabel +>. Aqui, todas as coisas que consumam eventos &MIDI;, como um reprodutor de amostras simulado (como 'software') ou o porto &MIDI; externo onde o seu reprodutor por 'hardware' estará ligado, serão listadas. As aplicações novas, como os sequenciadores registar-se-ão elas próprias, de modo a que la lista vai sendo actualizada ao longo do tempo. </para> + +<para +>Você poderá ligar as entradas às saídas se você marcar a entrada do lado esquerdo e a saída do lado direito, escolhendo em seguida <guilabel +>Ligar</guilabel +> com o botão em baixo. O <guilabel +>Desligar</guilabel +> funciona da mesma forma. Você irá ver o que está ligado como pequenas linhas entre as entradas e as saídas, no meio da janela. Tenha em atenção que você poderá ligar um emissor a mais do que um receptor (e vice-versa). </para> + +<para +>Os programas (como o sequenciador Brahms) adicionar-se-ão eles próprios quando são iniciados e serão removidos da lista quando terminarem. Mas você também poderá adicionar itens novos no menu <guilabel +>Adicionar</guilabel +>: </para> + +<variablelist> +<varlistentry> +<term +><guimenuitem +>Porto MIDI do Sistema (OSS)</guimenuitem +></term> +<listitem> +<para +>Isto irá criar um novo objecto do &arts; que fala com um porto MIDI externo. </para> + +<para +>Dado que os portos MIDI externos podem fazer ambas as coisas (enviar e receber dados), a escolha desta opção irá adicionar uma entrada e uma saída MIDI. No &Linux;, você deverá ter um controlador <acronym +>OSS</acronym +> (ou <acronym +>OSS</acronym +>/Free, o que vem com o 'kernel' do seu &Linux;) ou um <acronym +>ALSA</acronym +> instalado para a sua placa de som, para que isto funcione. Ele irá perguntar o nome do dispositivo. Normalmente, este é o <filename class="devicefile" +>/dev/midi</filename +> ou o <filename class="devicefile" +>/dev/midi00</filename +>. </para> + +<para +>Contudo, se você tiver mais do que um dispositivo &MIDI; ou &MIDI; local instalado, poderão existir mais opções. Para ver mais informações sobre os seus portos &MIDI;, inicie o &kcontrolcenter; e escolha <menuchoice +><guilabel +>Informação</guilabel +> <guilabel +>Som</guilabel +></menuchoice +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Saída MIDI de Sintetização do aRts</guimenuitem +></term> +<listitem> +<para +>Isto irá adicionar uma nova saída &MIDI; com um instrumento sintetizado do &arts;. Se você escolher o item do menu, aparecerá uma janela que lhe permite escolher um instrumento. Você poderá criar instrumentos novos com o 'artsbuilder'. Todos os ficheiros <literal role="extension" +>.arts</literal +> com um nome que comece por <filename +>instrument_</filename +> irão aparecer aqui. </para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="brahms"> +<title +>Usar o &arts; & o Brahms</title> + +<para +>De facto, começar é bastante fácil. Você irá precisar de uma versão para o &kde; 2.1 ou superior do &brahms;, a qual poderá ser encontrada no módulo <literal +>kmusic</literal +> do <acronym +>CVS</acronym +>. Existe também algumas informações sobre como obter o &brahms; na <ulink url="http://www.arts-project.org/" +>Página Pessoal do aRts</ulink +> na secção 'Download' (Transferir). </para> + +<para +>Quando você o inicia, irá aparecer no gestor de &MIDI;. Se você quiser fazer síntese, basta adicionar um instrumento sintetizado &MIDI; através da opção <menuchoice +><guilabel +>Adicionar</guilabel +><guilabel +>Saída MIDI de Síntese do aRts</guilabel +></menuchoice +>. </para> + +<para +>Escolha um instrumento (por exemplo, o <guilabel +>organ2</guilabel +>). Ligue-os com o botão <guilabel +>Ligar</guilabel +>. Finalmente, poderá começar a compor no &brahms;, para que o resultado seja sintetizado com o &arts;. </para> + +<para +>Normalmente, é uma boa ideia ter a janela do &artscontrol; aberta e ver se o volume não está muito alto (a qualidade piora quando as barras tocam no limite superior). Agora, você poderá começar a trabalhar numa música de demonstração do &arts; e, se estiver pronto, podê-la-á publicar no 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 +>O <command +>midisend</command +> é uma pequena aplicação que lhe permitirá enviar eventos de &MIDI; a partir da linha de comandos. Ele registar-se-á como cliente, tal como acontece com as outras aplicações. A forma mais simples de o usar é <screen +><prompt +>%</prompt +> <userinput +><command +>midisend</command +> <option +>-f</option +> <parameter +><replaceable +>/dev/midi00</replaceable +></parameter +></userinput +> </screen +>, o qual irá fazer mais ou menos o mesmo que adicionar um porto &MIDI; do sistema no &artscontrol;. (Nem por isso, porque o <command +>midisend</command +> só envia eventos). A diferença é que é fácil, por exemplo, iniciar o <command +>midisend</command +> em vários computadores diferentes (e, por isso, usar a transparência na rede). </para> + +<para +>Também é possível fazer com que o <command +>midisend</command +> envie os dados a partir do <filename class="devicefile" +>stdin</filename +>, o qual poderá usar para encaminhar os dados das aplicações que não conhecem o &arts;, como a seguinte: <screen +><prompt +>%</prompt +> <userinput +><command +><replaceable +>aplicacao_que_produz_eventos_midi_no_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 +>Criar Instrumentos</title> + +<para +>A forma como o &arts; faz a síntese de &MIDI; é a seguinte: você tem uma estrutura com alguns portos de entrada, onde ele vai obter a frequência, a velocidade (volume) e um parâmetro que indica se a nota ainda continua carreada. A estrutura deverá agora sintetizar exactamente a nota com esse volume e reagir ao parâmetro 'pressed' (pressionado) (onde o 'pressed' = 1 significa que o utilizador ainda mantém essa tecla carregada e o 'pressed' = 0 significa que o utilizador soltou a tecla). </para> + +<para +>Quando os eventos &MIDI; chegam, o &arts; irá criar novas estruturas para as notas à medida das necessidades, passar-lhes os parâmetros, e limpá-las quando terminar. </para> + +<para +>Para criar e usar uma dessas estruturas, você deverá fazer o seguinte: </para> + +<itemizedlist> +<listitem> +<para +>Para começar, a forma mais conveniente é abrir o ficheiro <filename +>template_Instrument.arts</filename +> no &arts-builder;. </para> + +<para +>Isto poderá ser obtido se usar o <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Abrir um Exemplo...</guimenuitem +></menuchoice +> e escolher o <guimenuitem +>template_Instrument</guimenuitem +> no selector de ficheiros. Isto dar-lhe-á uma estrutura vazia com os parâmetros necessários, os quais você só terá de <quote +>preencher</quote +>. </para> +</listitem> + +<listitem> +<para +>Para processar o parâmetro 'pressed', é conveniente usar o Synth_ENVELOPE_ADSR, ou, no caso de tocar apenas um WAV de uma bateria, simplesmente tocá-lo, ignorando deste modo o parâmetro 'pressed'. </para> +</listitem> + +<listitem> +<para +>A estrutura deverá indicar quando já não é necessária na saída <quote +>done</quote +> (pronto). Se o 'done' for igual a <returnvalue +>1</returnvalue +>, o &arts; irá assumir que pode remover a estrutura. Convenientemente, o envelope de ADSR fornece um parâmetro quando tiver terminado, por isso só precisa de ligar isto à saída 'done' da estrutura. </para> +</listitem> + +<listitem> +<para +>Você deverá mudar o nome da sua estrutura para algum nome que comece por <filename +>instrument_</filename +>, como por exemplo <filename +>instrument_piano.arts</filename +> - você deverá gravar o ficheiro com o mesmo nome na sua pasta <filename class="directory" +>$<envar +>HOME</envar +>/arts/structures</filename +> (a qual é onde o 'artsbuilder' normalmente deseja gravar os ficheiros). </para> +</listitem> + +<listitem> +<para +>Finalmente, logo que o tenha gravado, você será capaz de o usar com o &artscontrol; no gestor de &MIDI;.</para> +</listitem> + +<listitem> +<para +>Ah, e claro que a sua estrutura deverá tocar os dados de áudio que gera nas saídas esquerda e direita da estrutura, as quais serão por sua vez tocadas no gestor de áudio (você poderá ver isso no &artscontrol;), para que o consiga ouvir finalmente (ou processá-lo posteriormente com efeitos). </para> +</listitem> +</itemizedlist> + +<para +>Uma boa forma de aprender como criar instrumentos é abrir um instrumento existente através da opção <menuchoice +><guilabel +>Ficheiro</guilabel +><guilabel +>Abrir um Exemplo</guilabel +> </menuchoice +> e ver como funciona ;) </para> +</sect1> + +<sect1 id="mapped-instruments"> +<title +>Instrumentos Mapeados</title> + +<para +>Os instrumentos mapeados são os que se comportam de forma diferente, dependo da frequência, do programa, do canal ou da velocidade. Você poderá ter por exemplo um piano de 5 oitavas, usando uma amostra por cada oitava (ajustando a frequência, de acordo com isso). Isto irá soar bastante melhor do que usar apenas uma amostra. </para> + +<para +>Você poderá criar também um mapa de bateria, o qual toca uma amostra específica da bateria por tecla. </para> + +<para +>Finalmente, é muito útil se você tocar vários sons diferentes num instrumento mapeado em programas diferentes. Desta forma, você poderá usar o seu sequenciador, teclado externo ou outra fonte &MIDI; para mudar de sons sem ter de ajustar o &arts; à medida que trabalha. </para> + +<para +>Um bom exemplo para isso é o instrumento <filename +>arts_all</filename +>, o qual apenas reúne todos os instrumentos que vêm com o &arts; num mapa. Desta forma, você apenas terá de configurar uma vez o &artscontrol; para usar este <quote +>instrumento</quote +>, e assim, poderá compor uma música inteira num sequenciador sem ter de se incomodar com o &arts;. Precisa de outro som? Basta escolher o programa no sequenciador, para que o &arts; lhe dê outro som. </para> + +<para +>Criar esses mapas é relativamente simples. Você apenas precisa de criar um ficheiro de texto e escrever regras que se assemelhem a isto: </para> + +<programlisting +>ON <replaceable +>[ condições ...]</replaceable +> DO structure=<replaceable +>uma_estrutura</replaceable +>.arts +</programlisting> + +<para +>As condições poderão ser uma ou mais das seguintes: </para> + +<variablelist> + +<varlistentry> +<term +><option +>pitch</option +></term> + +<listitem> +<para +>A frequência ou tom que é tocado. Você poderá usar isto se quiser dividir o seu instrumento com base no tom. No exemplo inicial, um piano que use amostras diferentes para as várias oitavas iria usar isto como condição. Você poderá indicar uma frequência única, como por exemplo <userinput +><option +>pitch</option +>=<parameter +>62</parameter +></userinput +> ou um intervalo de frequências, como por exemplo <userinput +><option +>pitch</option +>=<parameter +>60</parameter +>-<parameter +>72</parameter +></userinput +>. Os tons possíveis situam-se entre <parameter +>0</parameter +> e <parameter +>127</parameter +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>program</option +></term> +<listitem> +<para +>O programa que está activo no canal para onde a nota vai ser enviada. Normalmente, os sequenciadores permitem-lhe escolher o <quote +>instrumento</quote +> através da opção 'program'. São permitidos programas únicos ou intervalos de programas, isto é, por exemplo, <userinput +><option +>program</option +>=<parameter +>3</parameter +></userinput +> ou <userinput +><option +>program</option +>=<parameter +>3</parameter +>-<parameter +>6</parameter +></userinput +>. Os programas possíveis situam-se entre <parameter +>0</parameter +> e <parameter +>127</parameter +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>channel</option +></term> +<listitem> +<para +>O canal para onde a nota vai ser enviada. São permitidos canais únicos ou intervalos, isto é, por exemplo, <userinput +><option +>channel</option +>=<parameter +>0</parameter +></userinput +> ou <userinput +><option +>channel</option +>=<parameter +>0</parameter +>-<parameter +>8</parameter +></userinput +>. Os canais possíveis situam-se entre <parameter +>0</parameter +> e <parameter +>15</parameter +>. </para> +</listitem> + +</varlistentry> +<varlistentry> +<term +><option +>velocity</option +></term> +<listitem> +<para +>A velocidade (volume) que a nota tem. São permitidas velocidades únicas (quem irá usar isso?) ou intervalos, como por exemplo <userinput +><option +>velocity</option +>=<parameter +>127</parameter +></userinput +> ou <userinput +><option +>velocity</option +>=<parameter +>64</parameter +>-<parameter +>127</parameter +></userinput +>. As velocidades possíveis situam-se entre <parameter +>0</parameter +> e <parameter +>127</parameter +>. </para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Um exemplo completo para um mapa seria (este é extraído do ficheiro <filename +>instrument_arts_all.arts-map</filename +> actual): </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 você poderá ver, a estrutura é seleccionada, dependendo do programa. No programa 11, você vê um <quote +>mapa de bateria</quote +> (com dois itens), o qual irá tocar um <quote +>bombo</quote +> com o C-5 (pitch=60), e um <quote +>prato de choque</quote +> com o C#5 (pitch=61). </para> + +<para +>Para fazer com que os ficheiros dos mapas apareçam automaticamente no &artscontrol; como opções dos instrumentos, terão de se chamar <filename +>instrument_<replaceable +>qualquercoisa</replaceable +>.arts-map</filename +> e estarem na sua Pasta Pessoal, em <filename class="directory" +>$<envar +>HOME</envar +>/arts/structures</filename +>, ou na pasta do &kde; em <filename class="directory" +>$<envar +>KDEDIR</envar +>/usr/local/kde/share/apps/artsbuilder/examples</filename +>. As estruturas que são usadas no mapa poderão ser indicadas com a sua localização absoluta ou então relativa à pasta onde o ficheiro de mapa se encontra. </para> + +<para +>Extender o mapa 'arts_all map' ou mesmo criar um mapa geral &MIDI; completo para o &arts; é uma boa ideia para tornar o &arts; mais simples de usar por-si-só. Pense por favor em contribuir com instrumentos interessantes que faça, de modo a que possam ser incluídos nas versões futuras do &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-pt/docs/tdemultimedia/artsbuilder/midiintro.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/midiintro.docbook new file mode 100644 index 00000000000..fc9b9712a68 --- /dev/null +++ b/tde-i18n-pt/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 +>Introdução ao <acronym +>MIDI</acronym +></title> + +<para +>Ainda não escrito </para> + +</appendix> diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/modules.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/modules.docbook new file mode 100644 index 00000000000..d1fd309b052 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/modules.docbook @@ -0,0 +1,1329 @@ +<!-- <?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 do &arts;</title> + + <sect1 id="modules-introduction"> +<title +>Introdução</title> + +<para +>Este capítulo descreve todos os módulos normais do &arts;. Sendo uma das funcionalidades mais poderosas do &arts;, os módulos podem ser ligados em conjunto através de estruturas para implementar novas funções como efeitos e instrumentos. </para> + +<para +>Os módulos são divididos em duas categorias. Os módulos de síntese são usados para implementar a <quote +>canalização</quote +> que manipula as sequências de dados multimédia para implementar novos efeitos, instrumentos, misturadores e aplicações. Os módulos visuais permitem-lhe oferecer uma interface gráfica para o utilizador poder controlar as estruturas de som que são criadas com os módulos de síntese. </para> + +</sect1> + +<sect1 id="synth-modules-reference"> +<title +>Referência dos Módulos de Síntese</title> + + +<sect2 id="mcat-synth-arithmetic-mixing"> +<title +>Aritmética + Mistura</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 +>Isto adiciona dois sinais. </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 +>Isto multiplica um sinal por um determinado factor. Você poderá usar isto para reduzir a amplitude dos sinais (0 < factor < 1) ou ampliá-los (factor > 1) ou ainda invertê-los (factor < 0). Tenha em atenção que o factor pode ser um sinal e não tem de ser constante (⪚ um sinal de envelope ou um sinal 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 +>Isto divide um sinal por um dado facto. Poderá usar isto para dividir um sinal por outro. Pode definir também o valor1 como sendo 1 e irá obter o simétrico do valor2 como resultado. Tenha em atenção que o valor2 nunca deverá ser igual a 0, caso contrário irá ter problemas com divisões por zero. </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 +>Isto adiciona uma quantidade arbitrária de sinais. Se você precisar de somar todas as formas de onda produzidas por quatro osciladores, você poderá ligar todas as saídas deles a um único módulo Synth_MULTI_ADD. Isto é mais eficiente do que usar três 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 +>Isto mistura dois sinais. Se o valor da percentagem for igual a -1, só o sinal esquerdo é ouvido; se for igual a 1, só o sinal direito é ouvido. Se for 0 (zero), ambos os sinais são ouvidos com o mesmo volume. </para> + +<para +>Isto permite-lhe garantir que o seu sinal permanece num intervalo bem definido. Se você tiver dois sinais que estejam entre -1 e 1 antes da mistura, eles irão permanecer dentro do mesmo intervalo após a dita mistura. </para> +</sect3> + +<sect3 id="mref-synth-autopanner-sect"> +<title +>Synth_AUTOPANNER</title> +<anchor id="mref-synth-autopanner"/> + +<para +>O oposto de um 'crossfader'. Este recebe um sinal mono e divide-o num sinal estéreo: É usado para deslocar automaticamente o sinal à entrada entre a saída esquerda e a direita. Isto torna as misturas mais vivias. Uma aplicação normal seria uma guitarra ou um som principal. </para> + +<para +>Ligue um <acronym +>LFO</acronym +>, uma onda sinusoidal ou dente-de-serra por exemplo ao 'inlfo'. e seleccione uma frequência entre 0,1 e 5Hz para um efeito tradicional ou mais ainda para efeitos especiais. </para> + +</sect3> + +</sect2> + +<sect2 id="mcat-synth-busses"> +<title +>Barramentos</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 +>Um canal de envio para um barramento. Forneça os sinais ao 'left' (esquerdo) e ao 'right' (direito), bem como o nome do barramento onde os dados deverão ir no porto <quote +>bus</quote +>. O sinal combinado de todos os canais de envio ('uplinks') irão aparecer em todos os canais de recepção ('downlinks') desse <quote +>barramento</quote +>. </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 +>Obtém (a soma de) todos os dados que são colocados num determinado barramento (com o nome que você indicar no porto <quote +>bus</quote +> (barramento)). </para> +</sect3> + +</sect2> + +<!-- TODO AFTER KDE2.1: move freeverb into delays, and rename category to + Delays & reverbs --> + +<sect2 id="mcat-synth-delays"> +<title +>Atrasos</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 +>Isto atrasa o sinal de entrada por um período de tempo determinado. A especificação do tempo deverá ser entre 0 e 'maxdelay' (atraso máximo) para obter um atraso equivalente em segundos. </para> + +<para +>Este tipo de atrasos <emphasis +>não pode ser usado</emphasis +> nas estruturas de realimentação ('feedback'). Isto acontece por ser um atraso variável. Você poderá modificar o seu tamanho enquanto corre e até mesmo configurá-lo como sendo zero. Mas como numa estrutura de realimentação a própria saída é necessária para calcular as próximas amostras, uma atraso cujo valor possa cair para zero durante a síntese poderá conduzir a uma situação de paragem. </para> + +<para +>Use os CDELAYs nesse caso, e combinando talvez um atraso constante (de 0,001 segundos) com um atraso flexível. </para> + +<para +>Você poderá também combinar um CDELAY com um DELAY para obter um atraso de tamanho variável com um valor mínimo num ciclo de realimentação. Certifique-se apenas que tem um 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 +>Isto atrasa o sinal de entrada por um período de tempo determinado. A especificação do tempo deverá ser maior que 0 para obter um atraso de 0 segundos ou mais. O atraso é constante durante o cálculo, o que significa que ele não poderá ser modificado. </para> + +<para +>Isto poupa no tempo de cálculo, atendendo a que não é feita nenhuma interpolação e é útil para estruturas recursivas. Veja a descrição acima (Synth_DELAY). </para> + +</sect3> + +</sect2> + +<sect2 id="mcat-synth-envelopes"> +<title +>Envelopes</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 +>Este é um envelope clássico de <acronym +>ADSR</acronym +>, o que significa que você indica: </para> + +<variablelist> +<varlistentry> +<term +>active</term> +<listitem> +<para +>Se a nota está a ser carregada de momento pelo utilizador. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>invalue</term> +<listitem> +<para +>O sinal de entrada. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>attack</term> +<listitem> +<para +>O tempo que deverá passar entre o utilizador carregar na nota e o sinal atingir a sua amplitude máxima (em segundos). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>decay</term> +<listitem> +<para +>O tempo que deverá passar entre o sinal atingir a sua amplitude máxima e o sinal a voltar para um nível constante (em segundos). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>sustain</term> +<listitem> +<para +>O nível constante em que o sinal é mantido até que o utilizador solte a nota. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>release</term> +<listitem> +<para +>O tempo que deverá passar depois de o utilizador soltar a nota até que o sinal seja reduzido até zero (em segundos). </para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Você irá obter o sinal redimensionado em 'outvalue' (na saída). Se o envelope do <acronym +>ASDR</acronym +> tiver terminado, irá colocar o 'done' (terminado) a 1. Você poderá usar isto para fornecer a saída <quote +>done</quote +> de um instrumento (que fará com que a estrutura do instrumento seja removida pelo encaminhador de &MIDI; logo que a fase do 'release' tenha terminado). </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 +>O módulo Synth_PSCALE irá aplicar um factor de escala ao canal de áudio que passa por ele, desde um volume 0 (silêncio) até o 1 (volume original), e de volta a 0 (silêncio). De acordo com a posição (pode obter a posição a partir de Synth_SEQUENCE). A altura em que o pico deverá ocorrer poder ser indicada em 'pos'. </para> + +<para +>Exemplo: Se definir o 'top' igual a 0,1 significa que, ao fim de 10% da nota ter sido tocada, o volume atingiu o seu máximo e começa a decair a partir daí. </para> +</sect3> + +</sect2> + +<sect2 id="mcat-synth-effects"> +<title +>Efeitos</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 +>Este é um efeito de reverberação. Na implementação actual, passa um sinal estéreo através do efeito, adicionando a tal reverberação ao mesmo sinal. </para> + +<note> +<para +>Isto significa que ele também poderá ser usado numa StereoEffectStack. </para> +</note> + +<para +>O sinal de entrada deverá ser ligado a (inleft, inright) e o de saída a (outleft, outright). </para> + +<para +>Os parâmetros que você poderá configurar são: </para> + +<variablelist> +<varlistentry> +<term +>roomsize</term> +<listitem> +<para +>O tamanho da sala que a reverberação irá simular (intervalo: 0..1, em que o 1 é a maior sala possível). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>damp</term> +<listitem> +<para +>Isto indica um filtro que fará com que a sala simulada absorva as altas frequências (intervalo de 0..1, em que o 1 significa que as altas frequências são absorvidas de forma agressiva). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>wet</term> +<listitem> +<para +>A quantidade de sinal reverberado (isto é, a quantidade de sinal que deverá ser modificado pelos filtros, resultando num som <quote +>molhado</quote +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>dry</term> +<listitem> +<para +>A quantidade de sinal puro que é passado, resultando num eco (ou atraso combinado), em vez de ser afectado por reverberação (intervalo: 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 +>largura</term> +<listitem> +<para +>A quantidade de efeito de estéreo que o algoritmo de reverberação adiciona ao efeito, tornando o som reverberado mais amplo no panorama estéreo (intervalo: 0..1). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>modo</term> +<listitem> +<para +>[ TODO: Pensa-se que, se o 'mode' for igual a 1, a reverberação mantém a imagem actual do som, e onde o 0 é a operação 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 +>O módulo 'tremolo' modula a amplitude com base numa onda <acronym +>LFO</acronym +>. Tradicionalmente você iria usar uma onda sinusoidal, mas porquê limitar-se? O que irá obter é um efeito muito intenso que corta a maioria dos arranjos devido ao seu efeito altamente dinâmico. O efeito de 'tremolo' é ainda um dos efeitos favoritos dos guitarristas, ainda que não seja tão popular como era nos anos 60. </para> + +<para +>[ TODO: de momento, isto está implementado como 'invalue + abs(inlfo)' - provavelmente faria mais sentido se fosse implementado como 'invalue * (1+inlfo*depth)', onde o 'depth' (profundidade) seria um parâmetro entre 0..1 - isto poderá ter sido decidido após o &kde;2.1 ; se tiver um comentário, envie uma mensagem para a lista do &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 +>Um 'flanger' é um efeito de atraso variável no tempo. Para tornar o desenvolvimento de efeitos complexos de 'flanger' mais simples, é fornecido este módulo que contém a base de um 'flanger' de um canal. </para> + +<para +>Ele contém os seguintes portos:</para> + +<variablelist> +<varlistentry> +<term +>invalue</term> +<listitem> +<para +>O sinal que você deseja processar. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>lfo</term> +<listitem> +<para +>De preferência, uma onda sinusoidal que modula o tempo de atraso no 'flanger' (-1 .. 1). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>mintime</term> +<listitem> +<para +>O valor mínimo para o atraso no 'flanger' em milisegundos. Valores sugeridos: tente algo do género 1 ms. Por favor use valores < 1000 ms. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>maxtime</term> +<listitem> +<para +>O valor máximo para o atraso no 'flanger' em milisegundos. Valores sugeridos: tente algo do género 5 ms. Por favor use valores < 1000 ms. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>outvalue</term> +<listitem> +<para +>O sinal de saída. É importante que você misture isso com o sinal original para obter o efeito desejado. </para> +</listitem> +</varlistentry> +</variablelist> + +<tip> +<para +>Você poderá usar isto com base para um efeito 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 +>Este efeito de mudança de frequência altera a frequência do sinal da entrada sem afectar a velocidade. Uma aplicação para isto é por exemplo a alteração do toma da sua voz enquanto você a grava (e reproduz) em tempo-real. </para> + +<para +>O parâmetro <emphasis +>speed</emphasis +> (velocidade) é a velocidade relativa com que o sinal será reproduzido. Deste modo, uma velocidade igual a dois fará com que o som fique duas vezes mas alto (&ie; uma frequência de entrada de 440 Hz iria resultar numa frequência de saída de 880 Hz). </para> + +<para +>O parâmetro <emphasis +>frequency</emphasis +> (frequência) é usado internamente para mudar entre as várias diferenças do sinal. É ajustável e, dependendo da sua escolha, o desvio de frequência parecerá mais ou menos realístico para o seu caso de uso. Um bom valor para começar será algo do tipo 5 ou 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 +>Filtra todas as frequências superiores à frequência 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 corta um sinal, de modo a fazer com que ele caiba no intervalo [-1;1]. Ele não faz nada para evitar a distorção que acontece ao cortar os sinais altos. Você poderá usar isto como um efeito (por exemplo, para criar uma onda sinusoidal ligeiramente cortada). Contudo, é provavelmente uma boa ideia passar o sinal através de um filtro passa-baixo depois disso, para tornar o som menos agressivo. </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 é um bloco de equalização parametrizado engraçado. Os seus parâmetros são: </para> + +<variablelist> +<varlistentry> +<term +>invalue, outvalue</term> +<listitem> +<para +>O sinal que é filtrado pelo equalizador. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>low</term> +<listitem> +<para +>Como é que as frequências baixas deverão ser alteradas. O valor está em dB, e onde 0 significa que as baixas frequências não são alteradas, o -6 significa que as reduzirá em 6dB, e o +6 significa que as aumenta em 6dB. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>mid</term> +<listitem> +<para +>Como é que as frequências intermédias deverão ser alteradas pelo equalizador (ver em 'low'). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>high</term> +<listitem> +<para +>Como é que as altas frequências deverão ser alteradas pelo equalizador (ver em 'low'). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>frequency</term> +<listitem> +<para +>Esta é a frequência central do equalizador em Hz, onde as frequências intermédias se situam à volta desse espectro, tendo as baixas frequências à sua esquerda e as altas à direita. Tenha em atenção que a frequência não poderá ser mais elevada que metade da taxa de amostragem; normalmente esta é igual a 22 050 Hz e não poderá ser menor que 1 Hz. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>q</term> +<listitem> +<para +>Isto influencia quão estreito é o espectro central. Deverá ser um número positivo > 0. Um valor igual a um é razoável, os valores mais elevados correspondem a um espectro mais estreito de frequências intermédios e os menores que um correspondem a um espectro largo. </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 +>Um filtro por ressonância filtra todas as frequências à volta de um determinado valor de pico. Não existe nenhuma forma útil de indicar a frequência intermédia (a que não será cortada), dado que as entradas são duas constantes estranhas 'f' e 'b'. O código é muito antigo, desde os primeiros dias do sintetizador, e provavelmente será substituído por um filtro novo que terá um frequência e um valor de ressonância como parâmetros). </para> + +<para +>Tente algo do género b=5, f=5 ou b=10, f=10 ou b=15, f=15, todavia. </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 as frequências acima da frequência de corte (é um filtro de 24dB com 4 pólos, o qual filtra -24db por oitava acima da frequência de corte), mas oferece um parâmetro adicional para ajustar a ressonância do filtro, em que o 0 significa ausência de ressonância e o 4 significa auto-oscilação. </para> + +</sect3> + +</sect2> + +<sect2 id="mcat-synth-midi-sequencing"> +<title +>MIDI + Sequenciação</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 carrega uma estrutura de um instrumento a partir de um ficheiro e regista-se como uma saída de MIDI com o gestor de &MIDI; do &arts;. As notas que são enviadas para esta saída irão resultar na criação de vozes dos instrumentos. </para> + +<note> +<para +>Você poderá configurar algo mais conveniente no &artscontrol; do que fazê-lo manualmente no &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 +>Irá tocar uma sequência de notas outra e outra vez. As notas são dadas na notação de teclado e são separadas por ponto-e-vírgula. Um exemplo será <literal +>A-3;C-4;E-4;C-4;</literal +>. A velocidade é dada em segundos por nota, por isso, se você quiser 120 batidas por minuto, você deverá indicar provavelmente 0,5 segundos por nota, dado que 60 segundos/0,5 segundos por nota=120 bpm. </para> + +<para +>Você poderá indicar em cada nota um tamanho relativo à velocidade adicionado dois pontos (:) a seguir à nota, seguido do tamanho. O <literal +>A-3:2;C-4:0.5;D-4:0.5;E-4;</literal +> demonstra isto. Como pode ver, os programas de composição de &MIDI; tendem a oferecer mais conforto ;) </para> + +<para +>O Synth_SEQUENCE dá-lhe informações adicionais sobre a posição da nota que está a tocar de momento, onde o 0 indica que iniciou agora e o 1 que terminou. Esta informação poderá ser usada no Synth_PSCALE (veja em baixo). </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 tal-e-qual o Synth_SEQUENCE com a única diferença que você não indica nomes de notas mas sim frequências. </para> + +</sect3> + +</sect2> + +<sect2 id="mcat-synth-samples"> +<title +>Amostras</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 +>Isto irá tocar um ficheiro <literal role="extension" +>wav</literal +>. Isto só estará presente se você tiver a 'libaudiofile' instalada no seu computador. O ficheiro WAVE iniciar-se-á logo que o módulo for criado. </para> + +<para +>Irá parar logo que tenha terminado, situação em que o 'finished' (terminado) será posto a 1. O parâmetro 'speed' (velocidade) pode ser usado para reproduzir o ficheiro mais depressa ou mais devagar, e onde o 1,0 é a velocidade normal (com que foi gravado). </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 Som</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 +>Você normalmente não irá necessitar deste módulo, a menos que esteja a criar aplicações autónomas. Dentro do &artsd;, existe já um módulo Synth_PLAY e, se criar outro, este não irá funcionar. </para> +</important> + +<para +>O módulo Synth_PLAY irá enviar o seu sinal de áudio para a placa de som. Os canais 'left' (esquerdo) e 'right' (direito) deverão conter a entrada <emphasis +>normalizada</emphasis +> dos canais. Se a sua entrada não estiver entre -1 e 1, será cortado o sinal. </para> + +<para +>Como já foi referido, só pode existir um módulo Synth_PLAY em uso, dado que este acede directamente à sua placa de som. Utilize os barramentos se você quiser misturar mais do que um canal de áudio em conjunto antes de o reproduzir. Use o módulo Synth_AMAN_PLAY para obter algo semelhante a uma saída no &artsd;. </para> + +<para +>Tenha em atenção que o Synth_PLAY também faz a temporização da estrutura completa. Isto significa: sem Synth_PLAY = sem fonte de temporização = sem som. Por isso, você irá necessitar (exactamente) de um objecto 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 +>Você normalmente não irá necessitar deste módulo, a menos que esteja a criar aplicações autónomas. Dentro do &artsd;, existe já um módulo Synth_RECORD e, se criar outro, este não irá funcionar. </para> +</important> + +<para +>O módulo Synth_RECORD irá gravar um sinal proveniente da placa de som. Os canais 'left' (esquerdo) e 'right' (direito) irão conter a entrada dos canais (entre -1 e 1). </para> + +<para +>Como já foi referido, só pode existir um módulo Synth_RECORD em uso, dado que este acede directamente à sua placa de som. Utilize os barramentos se você quiser usar os canais de áudio gravados em mais do que um sítio. Use o módulo Synth_AMAN_RECORD para obter algo semelhante a uma entrada no &artsd;. Para isto funcionar, o &artsd; terá de estar a correr <emphasis +>com o 'full duplex' activo</emphasis +>. </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 +>O módulo Synth_AMAN_PLAY irá enviar para a saída o seu sinal de áudio. É bom (mas não necessário) se você enviar para fora um sinal normalizado (entre -1 e 1). </para> + +<para +>Este módulo irá usar o gestor de áudio para atribuir onde o sinal será tocado. O gestor de áudio poderá ser controlado através do &artscontrol;. Para o tornar mais intuitivo no seu uso, é bom dar ao sinal que tocar um nome. Isto poderá ser obtido através da opção <emphasis +>title</emphasis +> (título). Outra funcionalidade do gestor de áudio é ser capaz de se recordar onde tocou um dado sinal da última vez. Para o fazer, ele precisa de ser capaz de distinguir os sinais. É por isso que você deverá atribuir algo único ao <emphasis +>autoRestoreID</emphasis +>, também. </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 +>O módulo Synth_AMAN_RECORD irá gravar um sinal de áudio de uma fonte externa (&ie;. 'line in'/'microfone') para dentro do &artsd;. O resultado será um sinal normalizado (entre -1 e 1). </para> + +<para +>Este módulo irá usar o gestor de áudio para atribuir onde o sinal será tocado. O gestor de áudio poderá ser controlado através do &artscontrol;. Para o tornar mais intuitivo no seu uso, é bom dar ao sinal que gravar um nome. Isto poderá ser obtido através da opção <emphasis +>title</emphasis +> (título). Outra funcionalidade do gestor de áudio é ser capaz de se recordar onde gravou um dado sinal da última vez. Para o fazer, ele precisa de ser capaz de distinguir os sinais. É por isso que você deverá atribuir algo único ao <emphasis +>autoRestoreID</emphasis +>, também. </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 +>O módulo Synth_CAPTURE irá gravar um sinal de áudio num ficheiro WAVE no seu disco rígido. O ficheiro será sempre chamado de <filename +>/tmp/mcop-<replaceable +>utilizador</replaceable +>/capture.wav</filename +> </para> +</sect3> + +</sect2> + +<sect2 id="mcat-synth-tests"> +<title +>Testes</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 +>Isto simplesmente não faz nada. Só é útil para situações de teste. </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 +>Você poderá usar isto para depuração. Ele irá imprimir o valor do sinal em 'invalue' em intervalos regulares (p.ex. a cada 1 segundo), combinado com o comentário que você indicou. Desta forma, você poderá descobrir se alguns dos sinais estão dentro de determinados intervalos ou se estão lá mesmo de todo. </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 +>Você poderá usar isto para depurar como é que os seus eventos &MIDI; estão a chegar ao &arts;. </para> + +<para +>Quando um MIDI_DEBUG estiver a correr, o &artsserver; irá imprimir linhas do tipo: </para> + +<screen +><computeroutput +>201 100753.837585 on 0 42 127</computeroutput +></screen> + +<screen +><computeroutput +>202 101323.128355 off 0 42</computeroutput +></screen> + +<para +>Enquanto que a primeira linha lhe diz que 100753ms (isto é, 100 segundos) depois de o MIDI_DEBUG começar, chegou um evento 'on' de &MIDI; no canal 0. Este evento tinha a velocidade (volume) de 127, a mais elevada possível. A linha a seguir mostra o evento de libertação do MIDI. [ TODO: isto não funciona de momento, quando funcionar, deverá ser feito através do gestor de &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 +>Isto cria um sinal com um número constante. </para> +<!-- TODO: this doesn't really belong in test, does it? --> +</sect3> +</sect2> + +<sect2 id="mcat-synth-osc-mod"> +<title +>Oscilação & Modulação</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 os osciladores no &arts; não precisam de uma frequência à entrada, mas si de uma posição na onda. A posição deverá ser entre 0 e 1, o que se mapeia num objecto normal do Synth_WAVE_SIN no intervalo 0..2*pi. Para gerar os valores oscilantes para uma frequência, é usado um 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 +>Isto é usado na modulação de frequência. Coloque a sua frequência na entrada 'frequency' (frequência) e coloque outro sinal na entrada 'modulator'. Depois disso, defina o 'modlevel' (nível de modulação) para algo do género 0,3. A frequência será então modulada com o 'modulator'. Pode experimentar. Funciona bem mesmo quando você coloca uma realimentação nele, o que significa ter uma combinação do sinal de saída atrasado com o Synth_FM_SOURCE (você terá de o pôr com algum oscilador, dado que só tem o papel do Synth_FREQUENCY) e algum outro sinal para obter bons resultados. </para> + +<para +>Funciona optimamente em conjunto com os 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 um sinal 'pos' de um Synth_FREQUENCY ou de um Synth_FM_SOURCE à entrada. Deste modo, poderá obter uma onda sinusoidal à saída. O sinal 'pos' indica a posição de fase na onda, e pertence ao intervalo 0..1, que se mapeia internamente em 0..2*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 de ondas triangulares. Coloque um sinal 'pos' de um Synth_FREQUENCY ou de um Synth_FM_SOURCE à entrada. Deste modo, poderá obter uma onda sinusoidal à saída. O sinal 'pos' indica a posição de fase na onda, e pertence ao intervalo 0..1, que se mapeia internamente em 0..2*PI. Tenha cuidado, porque o sinal de entrada <emphasis +>tem</emphasis +> de estar no intervalo 0..1 para que o sinal de saída produza bons 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 +>Um gerador de ruído. Isto gera um sinal aleatório entre -1 e 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 quadradas. Coloque um sinal 'pos' de um Synth_FREQUENCY ou de um Synth_FM_SOURCE à entrada. Deste modo, poderá obter uma onda sinusoidal à saída. O sinal 'pos' indica a posição de fase na onda, e pertence ao intervalo 0..1, que se mapeia internamente em 0..2*PI. Tenha cuidado, porque o sinal de entrada <emphasis +>tem</emphasis +> de estar no intervalo 0..1 para que o sinal de saída produza bons 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 dente-de-serra. Coloque um sinal 'pos' de um Synth_FREQUENCY ou de um Synth_FM_SOURCE à entrada. Deste modo, poderá obter uma onda sinusoidal à saída. O sinal 'pos' indica a posição de fase na onda, e pertence ao intervalo 0..1, que se mapeia internamente em 0..2*PI. Tenha cuidado, porque o sinal de entrada <emphasis +>tem</emphasis +> de estar no intervalo 0..1 para que o sinal de saída produza bons 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 impulsos - este módulo é semelhante na ideia ao oscilador de ondas quadradas (Synth_WAVE_RECT), mas oferece uma relação configurável de nível alto/baixo, através do parâmetro <emphasis +>dutycycle</emphasis +>. Coloque um sinal 'pos' de um Synth_FREQUENCY ou de um Synth_FM_SOURCE à entrada. Deste modo, poderá obter uma onda sinusoidal à saída. O sinal 'pos' indica a posição de fase na onda, e pertence ao intervalo 0..1, que se mapeia internamente em 0..2*PI. Tenha cuidado, porque o sinal de entrada <emphasis +>tem</emphasis +> de estar no intervalo 0..1 para que o sinal de saída produza bons resultados. </para> +</sect3> +</sect2> +<sect2 id="mcat-synth-misc"> +<title +>Diversos</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 reduz o intervalo dinâmico do sinal. Por exemplo, os compressores são úteis na compensação das variações amplas de volume se alguém estiver a falar para um microfone. </para> + +<para +>Assim que o nível de entrada exceder um dado nível (o patamar), o sinal é comprimido. Ele simplesmente multiplica tudo o que estiver acima do limite pelo valor de proporção, o qual é um número entre 0 e 1. Finalmente, o sinal completo é multiplicado pelo factor de saída. </para> + +<para +>Os argumentos 'attack' e 'release' atrasam o início e o fim da compressão. Use isto se você, por exemplo, quiser à mesma ouvir o início forte de uma batida de bateria. O argumento está em milisegundos e um valor igual a 0ms é possível, se bem que poderá resultar apenas num ligeiro ruído. </para> + +</sect3> +</sect2> +</sect1> + +<sect1 id="visual-modules-reference"> +<title +>Referência dos Módulos Visuais</title> + +<para +>TODO quando os módulos visuais estiverem mais "completos". </para> +</sect1> + +</chapter> diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/porting.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/porting.docbook new file mode 100644 index 00000000000..03834e67b4c --- /dev/null +++ b/tde-i18n-pt/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 +>Passar as Aplicações para o &arts;</title> + +<sect1 id="using-artsdsp"> +<title +>Usar o &artsdsp;</title> + +<para +>O utilitário &artsdsp;, <link linkend="artsdsp" +>descrito anteriormente</link +>, permite à maioria das aplicações de som legadas que falem directamente com os dispositivos de áudio, funcionarem convenientemente com o &arts;. As aplicações que foram criadas para usar o Enlightenment Sound Daemon (<application +>esd</application +>) irão também funcionar na maioria dos casos, se for executado o <application +>esd</application +> sobre o &artsdsp;. </para> + +<para +>Isto possibilita uma solução a curto prazo para passar as aplicações existentes para o &kde;. Todavia, não permite que a aplicação tire directamente partido de todas as potencialidades do &arts;, como a utilização dos módulos e das sequências multimédia que não sejam apenas áudio digital. Se a aplicação necessitar de algo mais do que a reprodução de ficheiros de som, normalmente fará sentido adicionar o suporte nativo para o &arts; na aplicação. </para> + +<para +>Ao usar o &arts; significa também que a aplicação não terá assim muito trabalho -- poderá remeter as funções para o &arts;, de modo a resolver alguns problemas, como por exemplo os codificadores para lidar com diferentes formatos multimédia e controlar o 'hardware' de som. </para> + +</sect1> + +<sect1 id="adding-native-arts-support"> +<title +>Adicionar o suporte nativo do &arts;</title> + +<para +>Ao usar o &arts;, você tem um conjunto de <link linkend="arts-apis" +><acronym +>API</acronym +>s</link +> diferentes por onde escolher. A decisão de qual usar depende de um conjunto de factores, como o tipo de conteúdos multimédia a usar (som, &MIDI;, &CD; áudio, &etc;), as funcionalidades necessárias da <acronym +>API</acronym +>, e se é escrito em C++. Na maioria dos casos, a escolha deverá ser relativamente óbvia com base nas funcionalidades pedidas. </para> + +<para +>Para uma portabilidade entre plataformas, as aplicações que precisem de correr noutros ambientes que não sejam o &kde;, não poderão confiar na presença do &arts;. Se usar o paradigma dos 'plugins' terá uma boa forma de suportar vários ambiente multimédia. Se tornar a <acronym +>API</acronym +> de 'plugins' aberta e documentada (especialmente para as aplicações com código fechado), terá também a vantagem de permitir que alguém que não o programador da aplicação implemente um 'plugin' do &arts;. </para> + +</sect1> + +</chapter> + diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/references.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/references.docbook new file mode 100644 index 00000000000..85eb7a70f53 --- /dev/null +++ b/tde-i18n-pt/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 +>Referências</title> + +<variablelist> + +<varlistentry> +<term +><ulink +url="http://multimedia.kde.org" +>http://multimedia.kde.org</ulink +></term> +<listitem> +<para +>Esta é o 'site' Web principal para as informações relacionadas com multimédia do &kde;. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><ulink +url="http://www.arts-project.org" +>http://www.arts-project.org</ulink +></term> +<listitem> +<para +>Esta é a página principal do projecto do &arts;. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Programação no &kde; 2.0</term> +<listitem> +<para +>O Capítulo 14 deste livro publicado cobre o multimédia e inclui o &arts;. Está disponível impresso ou 'online' com anotações em <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 +>Este 'site' contém uma lista razoável de aplicações de som e de &MIDI; para o &Linux;. </para> +</listitem> +</varlistentry> + +</variablelist> + +</chapter> diff --git a/tde-i18n-pt/docs/tdemultimedia/artsbuilder/tools.docbook b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/tools.docbook new file mode 100644 index 00000000000..9cc6d2134fa --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/artsbuilder/tools.docbook @@ -0,0 +1,1007 @@ +<!-- +<?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 +>Ferramentas do &arts;</title> + +<para +>Incluído com o &arts;, vem um conjunto de utilitários para controlar e configurar o seu comportamento. Você precisa de ter alguma familiaridade com a maioria dessas ferramentas para usar efectivamente o &arts;. Esta secção descreve cada um dos utilitários e as suas opções de comando. </para> + +<sect1 id="kde-control-center"> +<title +>&kcontrol;</title> + +<para +>Ao correr o &arts; no &kde;, o &kcontrolcenter; oferece um grupo de opções do painel de controlo na categoria <guilabel +>Som</guilabel +>. Algumas dessas opções são usadas pelo &arts;. Você também poderá associar sons com vários eventos do gestor de janelas e do &kde; com o painel <menuchoice +><guilabel +>Aparência & Comportamento</guilabel +><guilabel +>Notificações do Sistema</guilabel +></menuchoice +>. Veja o manual do &kcontrol; para saber como usar as opções do painel. </para> + +</sect1> + +<sect1 id="artsd"> +<title +>&artsd;</title> + +<para +>O acesso aos recursos de 'hardware' de som é controlado pelo &artsd;, o servidor do &arts;. Isto permite às várias aplicações enviarem pedidos simultâneos ao servidor, onde poderão ser misturados e tocados. Sem um servidor de som centralizado, uma única aplicação que usasse um dispositivo de som iria impedir que as outras aplicações o usassem também. </para> + +<para +>Para usar o &arts;, deverá existir uma e apenas uma cópia do &artsd; a correr. É tipicamente executada quando o &kde; se inicia, se estiver activo no painel do &kcontrol; <guilabel +>Servidor de Som</guilabel +> do &kcontrol;. </para> + +<para +>O programa aceita os seguintes 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 +>taxa amostragem</replaceable +></option +> <option +>-b <replaceable +>bits</replaceable +></option +> <option +>-d</option +> <option +>-D <replaceable +>nome dispositivo</replaceable +></option +> <option +>-F <replaceable +>fragmentos</replaceable +></option +> <option +>-S <replaceable +>tamanho</replaceable +></option +> <option +>-s <replaceable +>segundos</replaceable +></option +> <option +>-m <replaceable +>nome da aplicação</replaceable +></option +> </group +> <group choice="opt" +> <option +>-h</option +> <option +>-A</option +> <option +>-v</option +> <option +>-l <replaceable +>nível</replaceable +></option +> </group +> </cmdsynopsis> + +<variablelist +><varlistentry> +<term +><option +>-r <replaceable +>taxa de amostragem</replaceable +></option +></term> +<listitem> +<para +>Indica a taxa de amostragem a usar.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-h</option +></term> +<listitem> +<para +>Mostra a utilização dos comandos.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-n</option +></term> +<listitem> +<para +>Activa a transparência na rede.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-p <replaceable +>porto</replaceable +></option> +</term> +<listitem> +<para +>Define o porto de <acronym +>TCP</acronym +> a usar (implica o <option +>-n</option +>).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-u</option +></term> +<listitem> +<para +>Público e sem autenticação (perigoso).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-d</option +></term> +<listitem> +<para +>Activa a operação em 'full duplex'.</para> +</listitem> +</varlistentry> +<varlistentry> +<term +><option +>-D <replaceable +>nome do dispositivo</replaceable +></option +></term> +<listitem> +<para +>Indica o dispositivo de áudio a usar (normalmente é o <filename +>/dev/dsp</filename +>).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-F <replaceable +>fragmentos</replaceable +></option +></term> +<listitem> +<para +>Define o número de fragmentos.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-S <replaceable +>tamanho</replaceable +></option +></term> +<listitem> +<para +>Define o tamanho de cada fragmento em 'bytes'.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-s <replaceable +>segundos</replaceable +></option +></term> +<listitem> +<para +>Define o tempo de suspensão automática do servidor, em segundos. Um valor igual a zero desactiva a suspensão automática.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-m <replaceable +>nome da aplicação</replaceable +></option +></term> +<listitem> +<para +>Indica o nome de uma aplicação para usar para mostrar as mensagem de erro, de aviso e informativas. Se você estiver a correr o KDE, poderá usar o utilitário <application +>artsmessage</application +> para isto.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-N</option +></term> +<listitem> +<para +>Aumenta o tamanho dos tampões de rede para um valor adequado para correr numa LAN de 10 Mbps. Isto é equivalente a usar a opção '-w 5' (ver em baixo). </para> +</listitem> +</varlistentry> +<varlistentry> +<term +><option +>-w <replaceable +>n</replaceable +></option +></term> +<listitem> +<para +>Ao correr o <application +>artsd</application +> sobre uma ligação de rede a outra máquina, você poderá querer usar um tamanho maior dos tampões ('buffers') para evitar cortes. O aRts fornece às aplicações um tamanho mínimo sugerido. Sem esta opção, o tamanho por omissão baseia-se no valor 'tamanho do fragmento' * 'número de fragmentos'. Se usar esta opção você poderá aumentar o tamanho predefinido por um factor de <replaceable +>n</replaceable +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-l <replaceable +>nível</replaceable +></option +></term> +<listitem> +<para +>Indica o nível de informações - 3 (silencioso), 2 (avisos), 1 (informação), 0 (depuração).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-v</option +></term> +<listitem> +<para +>Mostra o número da versão.</para> +</listitem> +</varlistentry> + +</variablelist> + +<para +>Na maioria dos casos, bastará correr o &artsd;. </para> +</sect1> + +<sect1 id="artswrapper"> +<title +>&artswrapper;</title> + +<para +>Para oferecer uma boa resposta em tempo-real, o &artsd; é normalmente executado como um processo em tempo-real (nas plataformas que suportem prioridades de tempo-real). Isto necessita de permissões do <systemitem class="username" +>root</systemitem +>, por isso, para minimizar as implicações de segurança, o &artsd; poderá ser iniciado com o pequeno programa de interface &artswrapper;, o qual simplesmente configura a prioridade de tempo-real (correndo como <systemitem class="username" +>root</systemitem +>) e executa depois o &artsd; como um utilizador que não o <systemitem class="username" +>root</systemitem +>. </para> + +<para +>Se você tornar o 'artswrapper' 'SUID' <systemitem class="username" +>root</systemitem +>, ele irá provavelmente melhorar a qualidade da sua reprodução de áudio, reduzindo os cortes na música. Contudo, aumenta também o risco de que um erro no código ou algum utilizador malicioso faça estoirar ou prejudicar o seu sistema. Para além disso, nas máquinas multi-utilizador, se prioritizar o áudio de alta-fidelidade poderá provocar uma perda de 'performance' para os utilizadores que estão a tirar partido <quote +>produtivo</quote +> da máquina.</para> + +</sect1> + +<sect1 id="artsshell"> +<title +>&artsshell;</title> + +<para +>O comando &artsshell; pretende ser um utilitário para efectuar diversas funções relacionadas com o servidor de som. Pretende-se que o utilitário seja extendido com comandos novos no futuro (veja os comentários no código-fonte para ter algumas ideias). </para> + +<para +>O comando aceita o seguinte 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 +>volume</replaceable +>]</arg +> <arg +>stereoeffect <replaceable +>opções</replaceable +></arg +> </group +> <group +> <option +>-h</option +> <option +>-q</option +> </group +> </cmdsynopsis> + +<para +>artsshell [options] <replaceable +>comando</replaceable +> [<replaceable +>opções do comando</replaceable +>] </para> + +<para +>São suportadas as seguintes opções: </para> + +<variablelist> + +<varlistentry> +<term +><option +>-q</option +></term> +<listitem> +<para +>Suprime todos os resultados.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-h</option +></term> +<listitem> +<para +>Mostra a utilização dos comandos.</para> +</listitem> +</varlistentry> + +</variablelist> + +<para +>São suportados os seguintes comandos:</para> + +<variablelist> + +<varlistentry> +<term +><option +>suspend</option +></term> +<listitem> +<para +>Suspende o servidor de som. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>status</option +></term> +<listitem> +<para +>Mostra a informação de estado do servidor de som.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>terminate</option +></term> +<listitem> +<para +>Termina o servidor de som. Isto poderá confundir e/ou estoirar as aplicações que o estejam a usar no momento. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>autosuspend</option +> <parameter +>segundos</parameter +></term> +<listitem> +<para +>Configura o tempo de suspensão automática para o número de segundos indicado. O servidor de som suspender-se-á se estiver inactivo durante esse período de tempo. Um valor igual a zero desactiva a suspensão automática. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>networkbuffers</option +> <parameter +>n</parameter +></term> +<listitem> +<para +>Define o tamanho dos tampões de rede para ser um facto de <parameter +>n</parameter +> vezes o tamanho predefinido. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>volume</option +> [<replaceable +>volume</replaceable +>]</term> +<listitem> +<para +>Altera o factor de escala para as saídas de áudio do servidor de som. O argumento <replaceable +>volume</replaceable +> é um valor de vírgula flutuante. Sem argumentos, é mostrado o volume actual. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>stereoeffect lista</option +></term> +<listitem> +<para +>Mostra todos os módulos de efeitos estéreo disponíveis.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>stereoeffect insert [top|bottom]</option +> <replaceable +>nome</replaceable +></term> +<listitem> +<para +>Introduz um efeito estéreo na pilha de efeitos. Devolve um identificador que poderá ser usado para o remover posteriormente. Poderá ser instalado no topo ou no fundo (o valor por omissão).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>stereoeffect remove</option +> <replaceable +>identificador</replaceable +></term> +<listitem> +<para +>Remove o efeito estéreo com o identificador <replaceable +>identificador</replaceable +> da pilha de efeitos.</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="artsplay"> +<title +><application +>artsplay</application +></title> + +<para +>O comando <application +>artsplay</application +> é um utilitário simples para tocar um ficheiro de som. Ele aceita um único argumento que corresponde ao nome de um ficheiro de som que é enviado para o servidor de som de modo a ser tocado. O ficheiro de som poderá ser qualquer tipo de ficheiro de som comum como o <literal role="extension" +>wav</literal +> ou o <literal role="extension" +>au</literal +>. Este utilitário é bom para testar se o servidor de som está a funcionar. Se correr dois comandos em paralelo ou em sucessão rápida, você poderá demonstrar como os servidores de som misturam mais do que uma fonte.</para> + +</sect1> + +<sect1 id="artsdsp"> +<title +><application +>artsdsp</application +></title> + +<para +>O servidor de som só suporta as aplicações que tirem partido do &arts;. Muitas das aplicações legadas querem aceder ao dispositivo de som directamente. O comando &artsdsp; oferece uma solução intermédia que permite à maioria dessas aplicações correrem sem alterações. </para> + +<para +>Quando uma aplicação é executada com o &artsdsp;, todos os acessos ao dispositivo de áudio <filename class="devicefile" +>/dev/dsp</filename +> são interceptadas e mapeadas em chamadas à <acronym +>API</acronym +> do &arts;. Embora a emulação do dispositivo não seja perfeita, a maioria das aplicações funciona desta forma, ainda que com alguma latência e degradação de performance. </para> + +<para +>O comando &artsdsp; segue o formato: </para> + +<!-- LW: FIX THIS --> +<para +>artsdsp [<replaceable +>opções</replaceable +>] <replaceable +>argumentos da aplicação</replaceable +> </para> + +<para +>São reconhecidas as seguintes opções: </para> + +<variablelist> + +<varlistentry> +<term +><option +>-h</option +>, <option +>--help</option +></term> +<listitem> +<para +>Mostra uma breve ajuda.</para> +</listitem> +</varlistentry> +<varlistentry> +<term +><option +>-n</option +> <option +>--name</option +> = <replaceable +>nome</replaceable +></term> +<listitem> +<para +>Usa o <replaceable +>nome</replaceable +> para identificar o leitor no <command +>artsd</command +>.</para> + +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-m</option +> <option +>--mmap</option +></term> +<listitem> +<para +>Emula o mapeamento de memória (⪚ para o <application +>Quake</application +>).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-v</option +> <option +>--verbose</option +></term> +<listitem> +<para +>Mostra os parâmetros.</para> +</listitem> +</varlistentry> + +</variablelist> + +<para +>Uma invocação típica é a seguinte: </para> + +<para> +<userinput +><command +>artsdsp</command +> <option +>-v</option +> <option +>-m</option +> <parameter +>realplay <replaceable +>musica.mp3</replaceable +></parameter +></userinput> +</para> + +<para +>Algumas aplicações funcionam melhor com a opção <option +>--mmap</option +>. Nem todas as funcionalidades do dispositivo de som estão emuladas por completo, mas a maioria das aplicações deverá funcionar. Se encontrar alguma que não funcione, envie um relatório de erro detalhado para que os programadores o possam corrigir. Mais uma vez, lembre-se que isto é uma solução intermédia e uma espécie de 'truque sujo'; a melhor solução será adicionar o suporte nativo do &arts; às aplicações. Se a sua aplicação de som favorita não tem o suporte do &arts;, peça ao programador para o fornecer. </para> + +</sect1> + +<sect1 id="artscat"> +<title +><application +>artscat</application +></title> + +<para +>Este é um utilitário simples para enviar os dados em bruto para o servidor de som. Você precisa de indicar o formato dos dados (a taxa de amostragem, o tamanho da amostra e o número de canais). Este não é provavelmente um utilitário que use muito, mas poderá ser útil para fins de teste. A sintaxe do comando é a seguinte: </para> + +<!-- LW: FIX THIS --> + +<para +>artscat [ <replaceable +>opções</replaceable +> ] [ <replaceable +>nome do ficheiro</replaceable +> ] </para> + +<para +>Se não for indicado nenhum ficheiro, irá ler do 'standard input'. São suportadas as seguintes opções: </para> + +<variablelist> +<varlistentry> +<term +><option +>-r</option +> <parameter +>taxa de amostragem</parameter +></term> +<listitem> +<para +>Configura a taxa de amostragem a ser usada. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-b</option +> <parameter +>bits</parameter +></term> +<listitem> +<para +>Define o tamanho da amostra a usar (8 ou 16). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-c</option +> <parameter +>canais</parameter +></term> +<listitem> +<para +>Define o número de canais (1 ou 2). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-h</option +></term> +<listitem> +<para +>Mostra a utilização do comando e sai. </para> +</listitem> +</varlistentry> + +</variablelist> +</sect1> + +<sect1 id="artscontrol"> +<title +>&artscontrol;</title> + +<para +>Este é um utilitário gráfico para efectuar um dado número de tarefas relacionadas com o servidor de som. A janela por omissão mostra dois indicadores do nível do volume e uma barra para controlar o volume global. No menu <guimenu +>Ver</guimenu +>, você poderá seleccionar outras funções: </para> + +<variablelist> + +<varlistentry> +<term +><guimenuitem +>Osciloscópio FFT</guimenuitem +></term> +<listitem> +<para +>Abre uma janela que mostra um visualização do tipo de analisador de espectro em tempo-real. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Gestor de Áudio</guimenuitem +></term> +<listitem> +<para +>Mostra as fontes de áudio activas e permite-lhe ligá-las a qualquer um dos barramentos disponíveis. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Estado do aRts</guimenuitem +></term> +<listitem> +<para +>Mostra se o servidor de som está a correr e se o escalonamento é feito em tempo-real. Indica quando o servidor se suspende automaticamente e permite-lhe suspendê-lo imediatamente. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Gestor de MIDI</guimenuitem +></term> +<listitem> +<para +>Mostra as entradas e saídas activas de &MIDI; e permite-lhe criar ligações [TODO: Isto ainda funciona? São precisos mais detalhes]. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>FreeVerb</guimenuitem +></term> +<listitem> +<para +>Liga um efeito de reverberação FreeVerb à pilha dos efeitos de saída do &arts; e permite-lhe controlar graficamente os parâmetros do efeito. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Mostrador de volume com Leds</guimenuitem +></term> +<listitem> +<para +>Muda os indicadores de volume da janela principal para usar um mostrador colorido com <acronym +>LED</acronym +>s em vez de usar barras de progresso. </para> +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="artsc-config"> +<title +><application +>artsc-config</application +></title> + +<para +>Este é um utilitário para ajudar os programadores a usar a <acronym +>API</acronym +> de C do &arts;. Ele mostra as opções apropriadas do compilador e do editor de ligações que são necessárias ao compilar e ao gerar um executável com o &arts;. Pretende-se que seja usado nas 'Makefile's para ajudar na portabilidade. O comando aceita três opções: </para> + +<variablelist> +<varlistentry> +<term +><option +>--cflags</option +></term> +<listitem> +<para +>Mostra as opções do compilador que são necessárias ao compilar com a <acronym +>API</acronym +> de C do &arts;. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>--libs</option +></term> +<listitem> +<para +>Mostra as opções do editor de ligações que são necessárias ao gerar o executável que usa as bibliotecas da <acronym +>API</acronym +> de C do &arts;. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +><acronym +>--version</acronym +></term> +<listitem> +<para +>Mostra a versão do comando <command +>artsc-config</command +>. </para> +</listitem> +</varlistentry> +</variablelist> + +<para +>O resultado típico do comando é mostrado em baixo:</para> + +<screen width="40" +><prompt +>%</prompt +> <userinput +><command +>artsc-config</command +> <option +>--cflags</option +></userinput> +<computeroutput +>-I/usr/local/kde3/include/artsc</computeroutput> +<prompt +>%</prompt +> <userinput +><command +>artsc-config</command +> <option +>--libs</option +></userinput> +<computeroutput +>-L/usr/local/kde3/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 +>Você poderá usar este utilitário numa Makefile para uma regra do tipo: </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 +>O comando &mcopidl; é o compilador de ficheiros &IDL; para o &MCOP;, o 'Multimedia Communication Protocol' usado pelo &arts;. As interfaces no &arts; são definidas em &IDL;, uma 'Interface Definition Language' independente da linguagem. O utilitário &mcopidl; aceita um ficheiro &IDL; como entrada e gera ficheiros de inclusão e de código em C++ que implementam essa interface. O comando aceita a seguinte sintaxe: </para> + +<!-- LW: FIX THIS --> + +<para +>mcopidl [ <replaceable +>opções</replaceable +> ] <replaceable +>nome do ficheiro</replaceable +> </para> + +<para +>As opções válidas são:</para> +<variablelist> +<varlistentry> +<term +><option +>-I</option +> <parameter +>directoria</parameter +></term> +<listitem> +<para +>Procura na <parameter +>directoria</parameter +> pelos ficheiros de inclusão. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-e</option +> <parameter +>nome</parameter +></term> +<listitem> +<para +>Exclui a estrutura, interface ou tipo enumerado <parameter +>nome</parameter +> da geração de código. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-t</option +></term> +<listitem> +<para +>Cria também os ficheiros <literal role="extension" +>.mcoptype</literal +>/<literal role="extension" +>.mcopclass</literal +> que contêm a informação do tipo para o ficheiro &IDL;. </para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Para mais informações sobre o &MCOP; e o &IDL;, poderá ver a secção <link linkend="interfaces" +>Interfaces e &IDL;</link +>. </para> + +</sect1> + +</chapter> diff --git a/tde-i18n-pt/docs/tdemultimedia/juk/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/juk/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/juk/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/juk/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/juk/Makefile.in new file mode 100644 index 00000000000..baaaf0a708b --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- 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=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)/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 index.docbook ; 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 index.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/juk/$$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/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-pt/docs/tdemultimedia/juk/index.cache.bz2 b/tde-i18n-pt/docs/tdemultimedia/juk/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..b79f80fe276 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/juk/index.cache.bz2 diff --git a/tde-i18n-pt/docs/tdemultimedia/juk/index.docbook b/tde-i18n-pt/docs/tdemultimedia/juk/index.docbook new file mode 100644 index 00000000000..e10ccaf8c57 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/juk/index.docbook @@ -0,0 +1,2257 @@ +<?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 % Portuguese "INCLUDE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>O Manual do &juk;</title> + +<authorgroup> +<author +>&Lauri.Watts; &Lauri.Watts.mail;</author> +<author +><firstname +>Michael</firstname +> <surname +>Pyne</surname +> <affiliation +> <address +><email +>michael.pyne@kdemail.net</email +></address> +</affiliation> +</author> + +<othercredit role="developer" +><firstname +>Scott</firstname +> <surname +>Wheeler</surname +> <affiliation +> <address +><email +>wheeler@kde.org</email +></address> +</affiliation> +</othercredit> + +<othercredit role="translator" +><firstname +>José</firstname +><surname +>Pires</surname +><affiliation +><address +><email +>jncp@netcabo.pt</email +></address +></affiliation +><contrib +>Tradução</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 +>O &juk; é uma 'jukebox', um marcador e um gestor de colecções de música. </para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>tdemultimedia</keyword> +<keyword +>áudio</keyword> +<keyword +>marcador</keyword> +<keyword +>leitor</keyword> +<keyword +>jukebox</keyword> +<keyword +>JuK</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title +>Introdução</title> + +<para +>O &juk; é, bem, uma 'jukebox'. Como é típico em muitas aplicações de 'jukeboxes', o &juk; permite-lhe editar as <quote +>marcas</quote +> dos ficheiros de áudio e gerir as suas colecções e listas de reprodução. </para> +</chapter> + +<chapter id="using-juk"> +<title +>Usar o &juk;</title> + +<para> +<screenshot> +<screeninfo +>Aqui está uma imagem do &juk;</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="juk-main.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem do &juk; em acção.</phrase> + </textobject> + </mediaobject> +</screenshot> +</para> + +<para +>O &juk; mantém uma lista com todos os ficheiros que conhece. Esta é chamada de <guilabel +>Lista da Colecção</guilabel +>. A lista da colecção é específica do &juk; e não é partilhada com outras aplicações.</para> + +<para +>Independentes da Lista da Colecção, existem as listas de reprodução. Você poderá ter tantas listas de reprodução quantas desejar. Você pode usar as listas de reprodução com outros leitores multimédia (como o &noatun; ou o <application +>xmms</application +>) e você poderá gerir as listas de reprodução criadas nessas aplicações aqui no &juk;.</para> + +<para +>Você poderá adicionar ficheiros à Lista da Colecção individualmente, usando o <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Abrir um Ficheiro...</guimenuitem +></menuchoice +> e seleccionando-os numa janela de ficheiros normal do &kde;. Você poderá adicionar pastas inteiras se usar o <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Abrir uma Pasta...</guimenuitem +></menuchoice +>. As pastas que forem adicionadas desta forma serão pesquisadas de novo de cada vez que você iniciar o &juk;. Você poderá forçar uma nova pesquisa das pastas se carregar com o &RMB; em <menuchoice +><guimenu +>Lista da Colecção</guimenu +><guimenuitem +>Actualizar</guimenuitem +></menuchoice +>.</para> + +<para +>Se adicionar uma música a uma lista irá adicionar o seu ficheiro à Lista da Colecção, mas se adicionar um ficheiro à Lista da Colecção, não irá adicionar a música automaticamente a nenhuma lista de reprodução.</para> + +<para +>Você poderá criar rapidamente uma lista de reprodução a partir da sua Lista da Colecção inteira, se carregar com o &RMB; no ícone da <guilabel +>Lista da Colecção</guilabel +> e se escolher <guimenuitem +>Duplicar</guimenuitem +>. A lista resultante é uma lista de reprodução normal e, se a editar, não irá afectar a <guilabel +>Lista da Colecção</guilabel +>.</para> + +<para +>Você poderá adicionar ficheiros de listas de reprodução que tenham sido criados fora do &juk; individualmente se os seleccionar com o <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Abrir um Ficheiro...</guimenuitem +></menuchoice +>. Todos os ficheiros de listas de músicas que forem encontrados nas pastas que adicionar com o <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Abrir uma Pasta...</guimenuitem +></menuchoice +> serão também adicionados automaticamente.</para> + +<para +>Você poderá criar uma lista de reprodução nova se seleccionar <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Nova</guimenuitem +></menuchoice +> ou o ícone <guiicon +>Nova</guiicon +> na barra de ferramentas. Ser-lhe-á pedido um nome, aparecendo depois um ícone para essa lista de músicas na área da lista. Você poderá agora arrastar e largar os ficheiros da Lista da Colecção na sua lista de reprodução. Use o ícone <guiicon +>Gravar</guiicon +> ou o <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Gravar</guimenuitem +></menuchoice +> para gravar a lista de reprodução em qualquer altura.</para> + +<sect1 id="collection-list-gui"> +<title +>A Lista de Reprodução</title> + +<para +>Quando você estiver a ver a Lista da Colecção, a área principal contém todos os ficheiros que o &juk; conhece. Quando estiver a ver uma lista de músicas, só as músicas que constem nessa lista é que são mostradas. Em qualquer dos casos, a aparência e comportamento da lista são os mesmos.</para> + +<para +>Cada música ocupa uma linha no ecrã. Existe uma coluna para cada campo de meta-dados que o &juk; regista. Estas colunas correspondem aos campos disponíveis para edição no editor de marcas.</para> + +<para +>Você poderá reordenar a lista em qualquer altura se carregar com o &LMB; no cabeçalho da coluna. Isto irá primeiro ordenar os ficheiros por ordem crescente do conteúdo dessa coluna. Se carregar de novo com o &LMB; no mesmo cabeçalho, os ficheiros ficarão ordenados por ordem decrescente.</para> + +<para +>As colunas são inicialmente dimensionadas o suficiente para mostrar o item mais comprido disponível. Você poderá redimensionar as colunas se colocar o seu cursor do rato na divisão entre duas colunas. Quando o cursor do rato mudar, carregue com o &LMB; e arraste o cursor na direcção em que deseja redimensionar as colunas.</para> + +<para +>Você poderá reordenar as colunas se carregar com o &LMB; num cabeçalho e se arrastar esse cabeçalho para a esquerda ou para a direita. Você não poderá arrastar para lá do extremo da janela, contudo, por isso você poderá necessitar de deslocar um pouco para a esquerda ou para a direita, e repetir o arrastamento do cabeçalho, até que o tenha colocado na sua posição preferida.</para> + +<para +>Você poderá esconder ou apresentar as colunas se carregar com o &RMB; no cabeçalho de uma coluna e se carregar no nome da coluna a alterar.</para> + +<para +>Se carregar duas vezes com o &LMB; num ficheiro, irá tocá-lo com o seu leitor incorporado. Se já estiver outra música a ser tocada, irá parar e dará início à nova música.</para> + +<para +>Se carregar com o &RMB; num ficheiro aparecerão várias opções:</para> + +<variablelist> +<varlistentry> +<term +><guimenuitem +>Tocar a Próxima</guimenuitem +></term> +<listitem> +<para +>Isto irá começar a tocar o ficheiro, assim que a música actual terminar. Se não estiver nenhuma música a tocar, o ficheiro será tocado quando você carregar no botão <guiicon +>Tocar</guiicon +>. Se você tiver já escolhido o Tocar a Próxima num ficheiro diferente, então este ficheiro irá substituir essa selecção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Cortar</guimenuitem +></term> +<term +><guimenuitem +>Copiar</guimenuitem +></term> +<term +><guimenuitem +>Colar</guimenuitem +></term> +<listitem> +<para +>...</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Limpar</guimenuitem +></term> +<listitem> +<para +>Se você estiver a ver a Lista da Colecção, ao escolher o <guimenuitem +>Limpar</guimenuitem +> irá retirar o ficheiro da lista, e irá remover também todos os itens correspondentes para esta música em todas as listas de reprodução. Você deverá notar que, se este ficheiro estiver numa pasta que o &juk; pesquisa no arranque, ele será adicionado de novo à Lista de Colecção da próxima vez que você iniciar o &juk; mas não será adicionado automaticamente a nenhuma lista de reprodução.</para> +<para +>Se você estiver a ver uma lista de reprodução, o <guimenuitem +>Limpar</guimenuitem +> irá simplesmente remover a música da lista de reprodução.</para> + +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Editar</guimenuitem +></term> +<listitem> +<para +>Permitir-lhe-á editar a música seleccionada no momento na coluna em que carregou. Por exemplo, se você não tiver o editor de marcas visível e se estiver ocupado a criar uma lista de reprodução, mas se você reparar num erro ortográfico do nome de um artista, você podê-lo-á editar directamente com este item de menu.</para> +<para +>As alterações efectuadas desta forma são sempre gravadas imediatamente assim que você carregar noutro lugar qualquer e tiver terminado a edição.</para> +<para +>Este item do menu ficará desactivado se o &juk; detectar que a faixa que você seleccionou ter apenas permissões de leitura.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Actualizar Itens</guimenuitem +></term> +<listitem> +<para +>Isto irá actualizar a informação das marcas dos ficheiros seleccionados na lista, no caso de os ficheiros terem sido alterados enquanto o &juk; estava a correr.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Apagar do Disco</guimenuitem +></term> +<listitem> +<para +>Isto irá remover o ficheiro da Lista de Colecção, remover todos os itens da música em todas as listas de reprodução e remover o ficheiro do seu disco. Você não poderá anular isto, ainda que você seja questionado para confirmar a sua escolha. Use isto com cuidado.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guisubmenu +>Adivinhar Dados das Marcas</guisubmenu +></term> +<listitem> +<para +>Isto fará com que o &juk; tente adivinhar as informações como o Artista e o Título de uma música. O &juk; aplica vários métodos para tentar adivinhar: <variablelist> + + <varlistentry +><term +><guimenuitem +>Do Nome do Ficheiro</guimenuitem +></term> + <listitem +><para +>O &juk; irá tentar adivinhar as marcas da música com base no nome do seu ficheiro. Por exemplo, uma música chamada <filename +>Xutos e Pontapés - Homem do Leme.mp3</filename +> poderia adivinhar os Xutos e Pontapés como artista e Homem do Leme como título. Você poderá ajustar a forma como o &juk; adivinha as marcas ao seleccionar a opção <menuchoice +><guimenu +>Configuração</guimenu +><guimenuitem +>Adivinha das Marcas...</guimenuitem +></menuchoice +>, o qual irá abrir a <link linkend="juk-tag-guesser-configuration" +>janela de Adivinhas</link +>. O &juk; não irá substituir as marcas que não conseguir adivinhar a partir do nome do ficheiro.</para> + </listitem> + </varlistentry> + + <varlistentry +><term +><guimenuitem +>Da Internet</guimenuitem +></term> + <listitem +><para +>O &juk; irá tentar adivinhar as marcas da música com o programa MusicBrainz. Você precisa de ter o MusicBrainz instalado para este comando funcionar. </para> + </listitem> + </varlistentry> + + </variablelist> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Mudar o Nome do Ficheiro</guimenuitem +></term> +<listitem> +<para +>Isto irá mudar o nome dos ficheiros seleccionados para ficarem em conformidade com um dado formato. Você precisa de escolher a forma como deseja mudar o nome aos ficheiros seleccionando a opção <menuchoice +> <guimenu +>Configuração</guimenu +><guimenuitem +>Mudar o Nome do Ficheiro...</guimenuitem +></menuchoice +>. O nome resultante de cada ficheiro é baseado nas suas marcas de meta-dados. Por exemplo, a música em Ogg Vorbis <quote +>The Theme (Metroid)</quote +> de Stemage poderia ficar igual a <filename +>/usr/share/music/Stemage/The Theme (Metroid).ogg</filename +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Criar uma Lista com os Itens Seleccionados</guimenuitem +></term> +<listitem> +<para +>Isto permite-lhe criar rapidamente uma lista de reprodução com as músicas da sua Lista de Colecção. Esta função pedir-lhe-á o nome da sua nova lista de reprodução e irá então inserir todas as músicas seleccionadas na nova lista de reprodução.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>Adicionar os Itens Seleccionados ao Projecto K3b</guimenuitem +></term> +<listitem> +<para +>Isto permite-lhe criar rapidamente um projecto do K3b para gravação de CDs com as suas músicas seleccionadas. O &juk; perguntar-lhe-á se deseja um projecto de CD Áudio ou um de Dados, a menos que o K3b já tenha um projecto aberto.</para> + +<para +>Se o K3b não estiver já aberto, o &juk; irá iniciá-lo por si. Depois disso, o &juk; irá adicioná-lo ao projecto actual do K3b. Você poderá então gravar o projecto no K3b para gravar depois o CD ou então gravar logo o CD. </para> + +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="juk-playlists"> +<title +>Listas de reprodução &juk;</title> +<para +>Uma lista de reprodução é apenas uma colecção de reprodução agrupadas por uma dada categoria. Por exemplo, você poderá ter uma lista das músicas que você ouve enquanto está a programar, enquanto está a tentar dormir, ou mesmo quando precisa de ser rir. O &juk; suporta vários tipos diferentes de listas de reprodução. </para> + +<variablelist> + +<varlistentry> +<term id="juk-normal-playlists" +>Listas de reprodução normais</term> +<listitem +><para +><inlinemediaobject +><imageobject +><imagedata format="PNG" fileref="normal-playlist.png"/></imageobject +></inlinemediaobject +> Este é tipo mais normal de listas de reprodução. É uma lista composta por ficheiros, de forma muito semelhante à Lista de Colecção.</para +></listitem> +</varlistentry> + +<varlistentry> +<term id="juk-history-playlists" +>A lista do histórico</term> +<listitem +><para +><inlinemediaobject +><imageobject +><imagedata format="PNG" fileref="history-playlist.png"/></imageobject +></inlinemediaobject +> Se você activar esta lista (activando a opção <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar o Histórico</guimenuitem +></menuchoice +>, esta lista irá recordar todas as músicas que o &juk; toque. A lista terá uma coluna extra, o <guilabel +>Tempo</guilabel +>, que regista a hora e data exactas em que a música tocou. A lista não começa a registar o histórico, até que este fique activo de facto, contudo. </para +></listitem> +</varlistentry> + +<varlistentry> +<term id="juk-search-playlists" +>Listas de reprodução de procura</term> +<listitem +><para +><inlinemediaobject +><imageobject +><imagedata format="PNG" fileref="search-playlist.png"/></imageobject +></inlinemediaobject +> Esta é uma lista que se baseia numa procura. Você poderá criar uma lista destas se carregar em <menuchoice +> <guimenu +>Ficheiro</guimenu +><guisubmenu +>Nova</guisubmenu +><guimenuitem +>Lista de Procura</guimenuitem +></menuchoice +> ou se carregar no botão da <link linkend="juk-advanced-search-dialog" +>Pesquisa Avançada</link +> da <link linkend="search-bar" +>Barra de Procura</link +>.</para> +<para +>Depois de criar esta lista, ela irá manter o registo das músicas da Lista da Colecção que correspondam ao seu critério e actualizar-se-á automaticamente de acordo com as alterações na Lista da Colecção.</para +></listitem> +</varlistentry> + +</variablelist> + +<para +>AS listas de reprodução são organizadas na <guilabel +>área da Lista de Músicas</guilabel +>, o qual é a barra vertical à esquerda. Nesta área existe um ícone para cada lista que você tiver. Existem vários modos de visualização para esta área, os quais poderão ser seleccionados no menu <guimenu +>Ver</guimenu +><guisubmenu +>Modos de Visualização</guisubmenu +>. <variablelist> + +<varlistentry> +<term id="juk-viewmode-default" +>Modo de Visualização por Omissão</term> +<listitem> +<para +>Este é o modo de visualização por omissão. Neste modo, todas as listas são mostradas como ícones grandes, uma por cima da outra no modo de visualização. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="juk-viewmode-compact" +>Modo de Visualização Compacto</term> +<listitem> +<para +>Este modo é semelhante ao normal, com a diferença que as listas são representadas com barras horizontais com pequenos ícones em vez dos ícones grandes. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="juk-viewmode-tree" +>Modo em Árvore</term> +<listitem> +<para +>Este modo é o mais poderoso. Este modo é como o Compacto, excepto que a Lista da Colecção é agora a raiz de uma árvore de listas virtuais. A Lista da Colecção passa a ter três nós filhos, o Artista, o Álbum e o Género. Cada um destes nós terão filhos que representarão todos os itens da categoria indicada. Por exemplo, se a sua Lista da Colecção contiver músicas de 4 artistas diferentes, você iria ter 4 itens sob o nó do artista.</para> +<para +>Uma funcionalidade engraçada do modo em árvore é a alteração das marcas arrastando e largando. Basta seleccionar alguns ficheiros da lista de faixas e arrastá-los para um dos nós do artista, do álbum ou do género onde você os largou. As músicas verão as suas marcas serem alteradas para corresponderem ao item em que você largou as faixas. Por exemplo, se você arrastar um grupo de faixas num género chamado "Rock", todas as faixas passarão a ter uma marca de Género igual a Rock. </para> +</listitem> +</varlistentry> + +</variablelist> + +</para> + +</sect1> + +<sect1 id="juk-tagger"> +<title +>O Editor de Marcas do &juk;</title> + +<para +>Para vários formatos de ficheiros, é prático usar o nome do ficheiro para descrever o conteúdo do mesmo: <quote +><filename +>Relatório do conselho - Junho 2003.doc</filename +></quote +> por exemplo, poderá ser toda a informação que precisa para encontrar esse ficheiro de novo. Se tentar capturar toda a informação útil sobre uma dada música poderá contudo levar a nomes de ficheiros como o seguinte: <quote +><filename +>Type O Negative - The Glorious Liberation Of The Peoples Technocratic Republic Of Vinnland By The Combined Forces Of The United Territories Of Europa.mp3</filename +></quote +> ou <quote +><filename +>Various Artists_15_The Smithsonian Collection of Classic Jazz Volume II_Jimmie Lunceford & His Orchestra - Organ Grinder's Swing.mp3</filename +></quote +>. Estes nem são muito práticos de usar nem contêm toda a informação útil que você poderá ter retirado sobre a música. Se adicionar o álbum e o número da faixa, por exemplo, ao primeiro nome de ficheiro, torná-lo-ia ainda maior e menos fácil de gerir, sem contudo dizer à mesma o ano em que foi lançado, ou o estilo a que pertence, se você não estiver familiarizado com o artista.</para> + +<para +>A solução então é armazenar este tipo de meta-dados dentro dos próprios ficheiros. Os ficheiros MP3 e OGG podem também conter pequenos pedaços de texto que você poderá usar para descrever o conteúdo do ficheiro. Existem vários formatos, mas o &juk; esconde os detalhes das diferenças entre eles, oferecendo uma forma-padrão de editar um sub-conjunto normal de marcas conhecidas para todos os seus ficheiros de áudio.</para> + +<para +>O editor de marcas poderoso do &juk; permite-lhe editar as marcas tanto nos ficheiros MP3 como nos OGG. Você poderá editar os ficheiros individualmente ou vários ficheiros ao mesmo tempo, e você poderá seleccionar uma mistura de ficheiros MP3 e OGG para editar. O único requisito é que você tem acesso de escrita aos ficheiros em si; você não pode editar as marcas de um ficheiro que esteja montado num &CD-ROM; por exemplo.</para> + +<sect2 id="tagging-a-single-file"> +<title +>Editar as Marcas de um Único Ficheiro</title> + +<para +>Para editar a marca num único ficheiro, seleccione-o na lista de colecções ou em qualquer item que ele tenha numa lista de reprodução qualquer. Se o editor de marcas não estiver visível, active-o seleccionando a opção <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar Editor de Marcas</guimenuitem +></menuchoice +>. O editor de marcas aparece no fundo da lista.</para> + +<para +>Basta escrever em qualquer um dos campos de edição para alterar a informação. Quando terminar, carregue com o &LMB; de volta na lista, e ser-lhe-á pedido para gravar as suas alterações.</para> + +<para +>Você poderá concluir que o editor de marcas continua desactivado se você carregou num ficheiro. Isto acontece quando o &juk; detectar que a faixa tem apenas permissões de leitura.</para> + +<variablelist> +<title +>Campos do Editor de Marcas</title> +<varlistentry> +<term +><guilabel +>Nome do Artista:</guilabel +></term> +<listitem> +<para +>O nome do artista ou artistas que lançaram a música.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Nome da faixa:</guilabel +></term> +<listitem> +<para +>O nome da música.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Nome do álbum:</guilabel +></term> +<listitem> +<para +>O nome do álbum em que a música foi lançada.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Género:</guilabel +></term> +<listitem> +<para +>O <quote +>Estilo</quote +> da música. O &juk; fornece uma lista que corresponde de certa forma à norma informal do ID3, mas você está à vontade para escrever os seus próprios itens nesta lista.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Nome do ficheiro:</guilabel +></term> +<listitem> +<para +>O nome do ficheiro real no disco. Você poderá editar isto directamente e, quando fizer a gravação, o nome do ficheiro será então alterado.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Faixa:</guilabel +></term> +<listitem> +<para +>A posição da faixa na gravação original.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Ano:</guilabel +></term> +<listitem> +<para +>O ano em que a música foi lançada.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Comprimento:</guilabel +></term> +<listitem> +<para +>Isto não é editável, só é mostrado para fins informativos.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Taxa de dados:</guilabel +></term> +<listitem> +<para +>Isto não é editável, só é mostrado para fins informativos.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Comentário:</guilabel +></term> +<listitem> +<para +>Você poderá adicionar o seu comentário de texto livre, com notas adicionais, &etc;</para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Você poderá gravar explícita e imediatamente as suas alterações em qualquer altura com a opção do menu <menuchoice +><guimenu +>Marcador</guimenu +><guimenuitem +>Gravar</guimenuitem +></menuchoice +> ou carregando em <keycombo action="simul" +>&Ctrl;<keycap +>T</keycap +></keycombo +>.</para> + +</sect2> + +<sect2 id="tagging-multiple-files"> +<title +>Editar as Marcas em Vários Ficheiros</title> + +<para +>Você poderá seleccionar vários ficheiros na lista e editar um ou mais campos nas marcas para todos os ficheiros de uma vez.</para> + +<para +>Use o <keycap +>Shift</keycap +> e o &LMB; para seleccionar uma lista de ficheiros adjacentes, ou o &Ctrl; e o &LMB; para seleccionar vários ficheiros individuais e não-adjacentes.</para> + +<para +>Se o editor de marcas não estiver visível, você podê-lo-á activar se seleccionar <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar Editor de Marcas</guimenuitem +></menuchoice +>. O editor de marcas aparece no fundo da lista.</para> + +<para +>O editor de marcas comporta-se de forma ligeiramente diferente se você seleccionar vários ficheiros.</para> + +<para +>Cada campo no editor de marcas irá agora mostrar uma opção <guilabel +>Activar</guilabel +> ao lado dele. Cada campo que tem exactamente o mesmo conteúdo para todos os ficheiros que seleccionou, mostra esse conteúdo e fica activo para edição, com a opção <guilabel +>Activar</guilabel +> assinalada.</para> + +<!-- put screeny here --> + +<para +>Todos os campos que não tiverem conteúdo correspondente em todos os ficheiros seleccionados não fica editável no início e não mostra nenhum conteúdo de todo.</para> + +<para +>Para mudar o conteúdo de qualquer campo, assinale a opção <guilabel +>Activar</guilabel +> se não estiver já assinalada e edite o campo como normalmente o faria.</para> + +<para +>Quando tiver terminado, carregue com o &LMB; de volta na lista e ser-lhe-á pedido para gravar as suas alterações. A janela mostrar-lhe-á uma lista com os ficheiros afectados, por isso você terá uma hipótese de verificar se está de facto a alterar os ficheiros que pretendia.</para> + +<para +>Você poderá gravar explícita e imediatamente as suas alterações em qualquer altura com a opção do menu <menuchoice +><guimenu +>Marcador</guimenu +><guimenuitem +>Gravar</guimenuitem +></menuchoice +> ou carregando em <keycombo action="simul" +>&Ctrl;<keycap +>T</keycap +></keycombo +>.</para> + +</sect2> + +</sect1> + +<sect1 id="juk-rename-dialog"> +<title +>A janela de Mudança de Nomes dos Ficheiros</title> +<para> +<screenshot> +<screeninfo +>A janela de Mudança de Nomes dos Ficheiros</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="juk-file-renamer.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da janela de Mudança de Nome de Ficheiros.</phrase> + </textobject> + </mediaobject> +</screenshot> +</para> + +<para +>A janela de configuração da Mudança de Nome de Ficheiros é usada para configurar a acção para Mudar o Nome dos Ficheiros, a qual muda o nome da música com base na informação que está contida nas suas marcas de meta-dados. Primeiro, são alteradas as marcas, de acordo com os itens que você pode alterar e depois esses itens são usados para gerar o nome do ficheiro, baseado no <guilabel +>Esquema dos nomes de ficheiros</guilabel +>. </para> + +<para +>A parte mais importante da janela é a secção do <guilabel +>Esquema de nomes de ficheiros</guilabel +>. Você poderá escrever um esquema de nomes de ficheiros que o &juk; irá usar para mudar o nome aos ficheiros. A forma como funciona baseia-se no facto de alguns caracteres serem especiais. </para> + +<para +><variablelist> +<varlistentry> +<term +>%t</term> +<listitem +><para +>Isto irá ser substituído pelo Título depois de ser avaliado.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>%a</term> +<listitem +><para +>Isto irá ser substituído pelo Artista depois de ser avaliado.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>%A</term> +<listitem +><para +>Isto irá ser substituído pelo Álbum depois de ser avaliado.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>%T</term> +<listitem +><para +>Isto irá ser substituído pela Faixa depois de ser avaliada.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>%c</term> +<listitem +><para +>Isto irá ser substituído pelo Comentário depois de ser avaliado.</para> +</listitem> +</varlistentry> + +</variablelist> +</para> + +<para +>Cada item poderá conter sequências %s, as quais são substituídas pela marca actual, e qualquer texto que deseja, incluindo barras (/). Se um item tiver uma barra, então esta irá indicar um separador de directoria. Claro, seria possível escrever simplesmente separadores de directorias na linha do <guilabel +>Esquema de nomes de ficheiros</guilabel +>.</para> + +<para +>Se usar estes itens, contudo, permite-nos ignorar por completo as marcas que estiverem vazias. Se você assinalar a opção <guilabel +>Precisa de valor</guilabel +>, então o item será ignorado se a marca correspondente estiver em branco. Por exemplo, você poderia usar isto para separar os ficheiros com comentários dos que não têm sem ter de colocar algo do género <replaceable +>tem-comentário/%s</replaceable +> na edição do campo <guilabel +>Item do comentário</guilabel +>.</para> + +<para +>Você poderá testar o seu esquema de nomes de ficheiros se usar o editor <guilabel +>Nome do ficheiro actual</guilabel +> da janela. Escreva o nome do ficheiro de uma música, para que o <guilabel +>Novo nome de ficheiro</guilabel +> irá mostrar como é que o &juk; iria mudar o nome desse ficheiro, com base na configuração actual. </para> +</sect1> + +<sect1 id="juk-tag-guesser-configuration"> +<title +>A janela de Configuração da Adivinha de Marcas</title> +<para> +<screenshot> +<screeninfo +>A janela de Configuração da Adivinha de Marcas</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="juk-tag-guesser.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da janela de Configuração da Adivinha de Marcas.</phrase> + </textobject> + </mediaobject> +</screenshot> +</para> + +<para +>A janela de Configuração da Adivinha de Marcas é usada para configurar o comando Adivinhar a Partir do Nome do Ficheiro.</para> + +<para +>Na janela você irá ver uma lista à esquerda com padrões de esquemas de nomes de ficheiros diferentes. O &juk; inclui um conjunto extenso de padrões por omissão que correspondem aos estilos mais comuns de nomeação de ficheiros. Se quiser adicionar um novo, carregue no botão <guibutton +>Adicionar</guibutton +>, escreva o seu esquema e carregue em <guibutton +>OK</guibutton +>. Você poderá usar os mesmos itens de percentagem que foram definidos na <link linkend="juk-rename-dialog" +>Configuração da Janela de Mudança de Nome</link +>. </para> + +<para +>O &juk; irá tentar os esquemas que tiver listado, um de cada vez, a começar do topo. O primeiro esquema que resultar numa correspondência será o esquema usado para adivinhar as marcas da música. Algumas músicas poderão corresponder a mais do que um esquema. Você poder-se-á certificar que o esquema correcto faz correspondência em primeiro lugar, seleccionando-o na lista e usando os botões das setas para o mover para o topo da lista. </para> + +<para +>Você poderá também editar ou remover um esquema da lista. Basta seleccionar o esquema da lista e usar o botão <guibutton +>Modificar</guibutton +> para alterar o esquema ou o botão <guibutton +>Remover</guibutton +> para retirar o esquema da lista. </para> +</sect1> + +<sect1 id="juk-advanced-search-dialog"> +<title +>A janela de Pesquisa Avançada</title> +<para> +<screenshot> +<screeninfo +>A janela de Pesquisa Avançada</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="juk-adv-search.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da janela de Pesquisa Avançada.</phrase> + </textobject> + </mediaobject> +</screenshot> +</para> + +<para +>A janela de Pesquisa Avançada é usada para criar <link linkend="juk-search-playlists" +>Listas de Procura</link +>. Isto permite-lhe criar uma pesquisa fina sobre as várias marcas da sua colecção de músicas.</para> + +<para +>No topo da janela, você poderá escrever o nome da sua lista de procura. Aí, você poderá definir o seu critério no grupo <guilabel +>Critério de Pesquisa</guilabel +>. </para> + +<para +>O topo do grupo <guilabel +>Critério de Pesquisa</guilabel +> tem duas opções exclusivas, a <guilabel +>Corresponder a qualquer dos seguintes</guilabel +> e <guilabel +>Corresponder a todos os seguintes</guilabel +>. Se seleccionar a primeira opção, então se alguma música corresponder a pelo menos um dos critérios, será incluída na lista. Caso contrário, todas as condições terão de ser verificadas para a música ser incluída na lista. </para> + +<para +>Por baixo das opções exclusivas, encontram-se as definições de condições. Poderá adicionar mais condições se usar o botão <guibutton +>Mais</guibutton +>, assim como poderá remover se usar o botão <guibutton +>Menos</guibutton +>. As condições que deixar em branco serão ignoradas, por isso não terá de usar o botão <guibutton +>Menos</guibutton +> para eliminar as condições vazias. </para> + +<para +>Todas as definições de condições têm três partes: a lista de escolha de marcas à esquerda, a lista do estilo correspondente à direita e o texto de procura no meio. O selector de marcas permite ao &juk; saber qual a marca que deseja procurar no texto. Se escolher a marca especial "<Tudo Visível>", então qualquer marca que consiga ver na Lista da Colecção poderá ser correspondida com o texto de procura. </para> + +<para +>A lista de estilos de correspondência permite ao &juk; saber qual o método de procura. Os métodos de procura que poderá usar são os seguintes: <variablelist> +<varlistentry> +<term +>Procura Normal</term> +<listitem +><para +>Este é o estilo de correspondência normal. Ele procura pelo texto indicado em todo o lado da marca escolhida, ignorando as diferenças entre maiúsculas e minúsculas. Por exemplo, uma procura por 'mode' na marca Artista iria corresponder a 'Depeche Mode'.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +>Distinguir Capitalização</term> +<listitem +><para +>Esta procura é semelhante à Correspondência Normal, excepto que a capitalização do texto da procura precisa de ser exactamente igual ao texto.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +>Procura por Padrões</term> +<listitem +><para +>Este é o método de procura mais poderoso. O texto da procura que escrever aqui irá definir uma expressão regular usada para procurar na marca. As expressões regulares estão para além do âmbito desta documentação, mas a aplicação &kregexpeditor; podê-lo-á ajudar a formar uma expressão regular. O &juk; usa o estilo de expressões regulares do Qt.</para +></listitem> +</varlistentry> + +</variablelist> + +</para> + +<para +>Basta escolher as condições que deseja incluir na sua procura e carregar em <guibutton +>OK</guibutton +> para criar a sua lista de procura! </para> +</sect1> + +</chapter> + +<chapter id="toolbar-reference"> +<title +>A Barra de Ferramentas do &juk;</title> + +<sect1 id="main-toolbar"> +<title +>A Barra de Ferramentas Principal</title> + +<screenshot> +<screeninfo +>A barra de ferramentas do &juk;.</screeninfo> +<mediaobject> +<imageobject> +<imagedata format="PNG" fileref="toolbar.png"/> +</imageobject> +<textobject> +<phrase +>A barra de ferramentas do &juk;.</phrase> +</textobject> +<caption +><para +>A barra de ferramentas do &juk;.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Da esquerda para a direita na imagem acima, os ícones da barra de ferramentas são por omissão:</para> + +<variablelist> +<varlistentry> +<term +><guiicon +>Nova</guiicon +></term> +<listitem +><para +>Cria uma nova lista de reprodução. Se você mantiver carregado o botão, irá aparecer um menu que lhe permite seleccionar os vários tipos de listas a criar. </para> + <variablelist> + <varlistentry +><term +><guimenuitem +>Lista de Reprodução Vazia...</guimenuitem +></term> + <listitem +><para +>Isto pede-lhe o nome da lista e depois insere-a na área da Lista. A mesma irá começar completamente em branco.</para +></listitem> + </varlistentry> + + <varlistentry +><term +><guimenuitem +>Lista de Música a Partir de Pasta...</guimenuitem +></term> + <listitem +><para +>Isto pede-lhe uma directoria para abrir, criando então uma lista com as músicas dentro da pasta e das suas subpastas. O nome da lista criada é o mesmo da pasta seleccionada.</para +></listitem> + </varlistentry> + + <varlistentry +><term +><guimenuitem +>Lista de Procura...</guimenuitem +></term> + <listitem +><para +>Isto abre a Janela de Pesquisa Avançada, a qual lhe permite criar uma <quote +>lista de reprodução virtual</quote +>. Todas as músicas da sua Lista de Colecção que corresponderem ao critério de procura que você indicar na janela de Pesquisa Avançada serão adicionadas à nova lista. À medida que a sua Lista da Colecção muda, a nova lista irá mudar também. Por exemplo, se você criar uma lista com todas as suas músicas de Depeche Mode e adicionar outra música de Depeche Mode à sua Lista da Colecção, ela irá aparecer também na lista de Depeche Mode sem ser necessária nenhuma acção pela sua parte. </para +></listitem> + </varlistentry> + + </variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Abrir</guiicon +></term> +<listitem +><para +>Adiciona um ficheiro à lista da colecção (se estiver activa) ou à lista de reprodução seleccionada no momento. Se adicionar um ficheiro a uma lista de músicas, adicioná-lo-á automaticamente à lista da colecção, mas o contrário não se aplica.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Gravar</guiicon +></term> +<listitem +><para +>Grava a lista de reprodução seleccionada no momento. Para gravar uma marca que tenha editado, tanto pode seleccionar outro item ou carregar em <keycombo action="simul" +>&Ctrl;<keycap +>T</keycap +></keycombo +>, em alternativa.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Cortar</guiicon +></term> +<listitem +><para +>Se estiver seleccionada alguma lista de reprodução ou uma música individual, corta-a (remove-a) da lista. Se o editor de marcas estiver activo, isto funcionará como o 'Cortar' em qualquer editor, removendo o texto seleccionado, mas mantendo uma cópia na área de transferência.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Copiar</guiicon +></term> +<listitem +><para +>Se o editor de marcas estiver activo, isto funciona como o Copiar em qualquer editor, colocando uma cópia do texto seleccionado na área de transferência.</para> +<para +>Se você usar o Copiar numa música da lista da colecção, o URL é colocado na área de transferência, para que o possa colar mais tarde. Por exemplo, você podia colar o URL num editor de texto, no &konqueror; ou noutra lista de reprodução.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Colar</guiicon +></term> +<listitem +><para +>Se você cortar ou copiar um URL anteriormente da lista de colecção, você poderá colar o URL de volta para uma lista de reprodução nova. Você podia também colar um URL que tivesse copiado a partir do &konqueror; ou de outra aplicação. Se você estiver a lidar com o editor de marcas, o Colar irá colar o texto da área de transferência no campo seleccionado.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Mostrar a Barra de Procura</guiicon +></term> +<listitem +><para +>Mostra ou esconde a <link linkend="search-bar" +>barra de procura</link +>.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guiicon +>Mostrar o Editor de Marcas</guiicon +></term> +<listitem +><para +>Mostra ou esconde o <link linkend="tagging-a-single-file" +>editor de marcas</link +>.</para +></listitem> +</varlistentry> + +<varlistentry id="play-toolbar"> +<term +>Controlos de reprodução</term> +<listitem> +<para +>Estes funcionam como em qualquer leitor multimédia que possa escolher. Os controlos são o <guiicon +>Tocar</guiicon +>, <guiicon +>Pausa</guiicon +>, <guiicon +>Parar</guiicon +>, <guiicon +>Passar para a música anterior</guiicon +> e <guiicon +>Passar para a música seguinte</guiicon +>.</para> +<para +>Existe também uma barra de progresso que lhe mostra onde (relativamente) vai na música actual. Você poderá arrastar esta barra com o rato para avançar ou recuar directamente dentro de uma faixa.</para> +<para +>Finalmente, existe uma barra de volume. Como poderá estar à espera, isto aumenta ou diminui o volume. O <quote +>Alto</quote +> fica à direita e o <quote +>Silêncio</quote +> à esquerda.</para +></listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="search-bar"> +<title +>A Barra de Procura</title> + +<para +>A barra de procura permite-lhe procurar rapidamente por uma música na lista de colecção ou numa lista de reprodução.</para> + +<para +>Basta escrever o texto na barra de procura para reduzir a lista visível de músicas àquelas que contêm esse texto em qualquer coluna visível. Se carregar em <keycap +>Enter</keycap +> irá começar a tocar a ocorrência de topo da lista.</para> + +<para +>A pesquisa começa instantaneamente quando o texto é introduzido na campo de procura. A procura é incremental, isto é, à medida que você for escrevendo cada carácter no campo de texto, a pesquisa é cada vez mais restrita. Isto é útil para encontrar uma música da qual só se lembra de parte do nome, por exemplo.</para> + +<para +>Se você quiser fazer uma pesquisa mais refinada, poderá carregar no botão Pesquisa Avançada à direita da barra de procura, o qual lhe permitirá criar uma lista de reprodução virtual. Se quiser cancelar a procura, você poderá simplesmente carregar no botão Limpar à esquerda da barra de procura.</para> + +</sect1> + +</chapter> + +<chapter id="menu-and-command-reference"> +<title +>Referência do Menu e dos Comandos</title> + +<sect1 id="menus"> +<title +>Menus</title> + +<sect2 id="menu-file"> +<title +>O Menu <guimenu +>Ficheiro</guimenu +></title> + +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +>&Ctrl;<keycap +>N</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +><guisubmenu +>Nova</guisubmenu +><guimenuitem +>Lista de reprodução Vazia...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Cria uma nova lista de reprodução</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +>&Ctrl;<keycap +>D</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +><guisubmenu +>Nova</guisubmenu +><guimenuitem +>Lista de reprodução a Partir de Pastar...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Cria uma nova lista de reprodução, contendo todos os ficheiros de música de uma pasta e das suas subpastas. Todas as músicas dentro dos ficheiros das listas de reprodução que o &juk; reconhecer serão também adicionadas.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +>&Ctrl;<keycap +>F</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +><guisubmenu +>Nova</guisubmenu +><guimenuitem +>Lista de Procura...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Cria uma nova <link linkend="juk-search-playlists" +>lista de procura de músicas</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>O</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +> <guimenuitem +>Abrir...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Selecciona um ou mais ficheiros para adicionar à lista da colecção. Se seleccionar um ficheiro de uma lista de reprodução, todos os ficheiros desta serão adicionados.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Adicionar uma Pasta...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Selecciona uma pasta (ou pastas) para adicionar à lista da colecção. Estas pastas serão também pesquisadas de novo sempre que o &juk; é iniciado ou <menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Actualizar</guimenuitem +> </menuchoice +> é seleccionado.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ficheiro</guimenu +> <guimenuitem +>Mudar o Nome...</guimenuitem +></menuchoice> +</term> +<listitem +><para +>Muda o nome de uma lista de reprodução.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Duplicar...</guimenuitem +></menuchoice> +</term> +<listitem +><para +>Cria um duplicado da lista de reprodução seleccionada, pedindo um novo nome. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Actualizar</guimenuitem +></menuchoice> +</term> +<listitem +><para +>Relê a informação das marcas em todos os ficheiros da lista de reprodução seleccionada. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ficheiro</guimenu +><guimenuitem +>Remover</guimenuitem +></menuchoice +></term> +<listitem +><para +>Remove a lista seleccionada.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +>&Ctrl;<keycap +>S</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +><guimenuitem +>Gravar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Remove o item seleccionado.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ficheiro</guimenu +> <guimenuitem +>Gravar Como...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Grava a lista de reprodução seleccionada, pedindo um novo nome.</para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2 id="menu-edit"> +<title +>O Menu <guimenu +>Editar</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><guimenu +>Editar</guimenu +><guimenuitem +>Limpar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Remove as músicas seleccionadas da lista.</para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2 id="menu-view"> +<title +>O Menu <guimenu +>Ver</guimenu +></title> + +<variablelist> +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar a Barra de Procura</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta é uma acção comutável que define se a <link linkend="search-bar" +>Barra de Procura</link +> está visível ou não.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar o Editor de Marcas</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta é uma acção comutável que decide se o <interface +>Editor de Marcas</interface +> está visível ou não.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar o Histórico</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta é uma acção comutável que decide se a <link linkend="juk-history-playlists" +>Lista do Histórico</link +> é mostrada ou não.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guisubmenu +>Modos de Visualização</guisubmenu +> <guimenuitem +>Por Omissão</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Muda para o <link linkend="juk-viewmode-default" +>modo de Visualização por Omissão</link +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guisubmenu +>Modos de Visualização</guisubmenu +> <guimenuitem +>Compacto</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Muda para o <link linkend="juk-viewmode-compact" +>modo de Visualização Compacto</link +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Ver</guimenu +><guisubmenu +>Modos de Visualização</guisubmenu +> <guimenuitem +>Árvore</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Muda para o <link linkend="juk-viewmode-tree" +>modo de Visualização em Árvore</link +>. </para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2 id="menu-player"> +<title +>O Menu <guimenu +>Leitor</guimenu +></title> + +<variablelist> +<varlistentry> +<term +><menuchoice +><guimenu +>Leitor</guimenu +><guimenuitem +>Reprodução Aleatória</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta é uma acção comutável que activa ou não a Leitura Aleatória. Se a Leitura Aleatória estiver activa, então o &juk; irá seleccionar aleatoriamente uma música aleatória da lista actual, logo que a música actual pare de tocar.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Leitor</guimenu +><guimenuitem +>Repetir Lista de Músicas...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta é uma acção comutável que activa ou não a Leitura em Ciclo. Se a Leitura em Ciclo estiver activa, então o &juk; irá começar a tocar do início da lista, quando acabar de tocar todas as músicas da lista actual.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Leitor</guimenu +><guimenuitem +>Tocar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando começa a tocar a música seleccionada de momento, ou prossegue a reprodução da mesma se estava em pausa.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Leitor</guimenu +><guimenuitem +>Pausa</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando põe a música actual em pausa. Use o comando Tocar para continuar a tocá-la.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Leitor</guimenu +><guimenuitem +>Parar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando pára a reprodução da música actual. Você não poderá continuar a reprodução da música a partir da sua posição actual, depois disso.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Leitor</guimenu +><guimenuitem +>Faixa Anterior</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando toca a música que estava a tocar antes da música actual.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Leitor</guimenu +><guimenuitem +>Próxima Faixa</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando passa para a música a seguir na lista.</para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2 id="menu-tagger"> +<title +>O Menu <guimenu +>Marcador</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +><keycap +>Ctrl</keycap +><keycap +>T</keycap +></keycombo +></shortcut +> <guimenu +>Marcador</guimenu +><guimenuitem +>Gravar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando grava as alterações às marcas que você está a editar. Normalmente, as alterações não são gravadas até que remova a selecção o ficheiro que está a editar.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Marcador</guimenu +><guimenuitem +>Remover</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando apaga os ficheiros seleccionados de momento da Lista de Colecção e todas as listas que os contêm, removendo então os ficheiros seleccionados do disco. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +><keycap +>Ctrl</keycap +><keycap +>F</keycap +></keycombo +></shortcut +> <guimenu +>Marcador</guimenu +><guisubmenu +>Adivinhar Dados das Marcas</guisubmenu +><guimenuitem +>Do Nome do Ficheiro</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando tenta adivinhar as marcas dos ficheiros seleccionados, com base no nome do ficheiro. Você poderá configurar os padrões usados na adivinha se seleccionar <menuchoice +><guimenu +>Configuração</guimenu +> <guimenuitem +>Adivinhar Marcas...</guimenuitem +></menuchoice +>, o qual abre a <link linkend="juk-tag-guesser-configuration" +>janela de configuração para Adivinhar Marcas</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycombo action="simul" +><keycap +>Ctrl</keycap +><keycap +>I</keycap +></keycombo +></shortcut +> <guimenu +>Marcador</guimenu +><guisubmenu +>Adivinhar Dados das Marcas</guisubmenu +><guimenuitem +>Da Internet</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando tenta adivinhar as marcas dos ficheiros seleccionados, usando o programa <application +>trm</application +> que vem com o <ulink url="http://www.musicbrainz.org/" +>MusicBrainz</ulink +>.</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect2> + +<sect2 id="menu-settings"> +<title +>O Menu <guimenu +>Configuração</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuração</guimenu +><guisubmenu +>Barras de Ferramentas</guisubmenu +> <guimenuitem +>Mostrar a Barra Principal</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando mostra ou esconde a <link linkend="main-toolbar" +>barra de ferramentas principal</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuração</guimenu +><guisubmenu +>Barras de Ferramentas</guisubmenu +> <guimenuitem +>Mostrar a Barra de Reprodução</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando mostra ou esconde a <link linkend="play-toolbar" +>barra de reprodução</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuração </guimenu +> <guimenuitem +>Mostrar o Ecrã Inicial</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta é uma acção comutável. Se estiver activa, o &juk; irá mostrar um ecrã informativo no arranque à medida que carrega a sua colecção de músicas.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuração</guimenu +> <guimenuitem +>Ícone na Bandeja do Sistema</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta é uma acção comutável. Se estiver activa, o &juk; irá mostrar um ícone na sua bandeja do sistema. Você poderá usar o ícone da bandeja do sistema para dizer se o &juk; está a tocar e a controlar a reprodução.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuração</guimenu +> <guimenuitem +>Manter na Bandeja do Sistema ao Fechar</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta é uma opção comutável. Se estiver activa, o &juk; irá continuar a correr se fechar a janela principal. A opção Acoplar na Bandeja do Sistema terá também de estar activa. Para sair do &juk;, use o comando <menuchoice +><guimenu +>Ficheiro</guimenu +> <guimenuitem +>Sair</guimenuitem +></menuchoice +> da janela principal ou o comando <guimenuitem +>Sair</guimenuitem +> do menu de contexto do ícone na bandeja do sistema.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuração</guimenu +> <guimenuitem +>Anúncio da Faixa por Aviso</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Esta é uma acção comutável. Se estiver activa, o &juk; irá mostrar um indicador sempre que uma música começa a tocar, com a informação do artista e do título e com botões que lhe permitem mudar rapidamente para uma música diferente. A opção Acoplar na Bandeja do Sistema terá de estar também activa.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuração</guimenu +> <guimenuitem +>Adivinhar Marcas...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando mostra a <link linkend="juk-tag-guesser-configuration" +>janela de configuração da Adivinha de Marcas</link +>, onde poderá alterar os padrões usados para adivinhar a informação das marcas a partir dos nomes de ficheiros.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuração</guimenu +> <guimenuitem +>Mudança de Nome de Ficheiros...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Este comando mostra a <link linkend="juk-rename-dialog" +>janela de configuração da Mudança de Nomes dos Ficheiros</link +>, onde poderá alterar a forma como o &juk; muda os nomes aos ficheiros por si.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuração</guimenu +> <guimenuitem +>Configurar os Atalhos...</guimenuitem +> </menuchoice> +</term> +<listitem +><para +>Isto mostra a janela normal do &kde; onde poderá configurar os atalhos de teclado do &juk;. Algumas predefinições razoáveis já estão incluídas, incluindo as teclas Multimédia para as pessoas que tenham teclados multimédia.</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect2> + +</sect1> + +<sect1 id="keybindings"> +<title +>Referência dos Atalhos de Teclado</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 +>Combinação de Teclas</entry> +<entry +>Acção</entry> +</row> +</thead> +<tbody> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>A</keycap +></keycombo +></entry> +<entry +>Seleccionar tudo</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 +>Muda o nome do ficheiro</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>I</keycap +></keycombo +></entry> +<entry +>Adivinha as marcas a partir da Internet.</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>G</keycap +></keycombo +></entry> +<entry +>Adivinha as marcas com base no nome do ficheiro.</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>F</keycap +></keycombo +></entry> +<entry +>Nova <link linkend="juk-search-playlists" +>lista de reprodução de procura</link +>.</entry> +</row> +<row> +<entry +><keycombo action="simul" +>&Ctrl;<keycap +>G</keycap +></keycombo +></entry> +<entry +>Adivinha os itens das marcas com base no nome do ficheiro</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>N</keycap +></keycombo +></entry> +<entry +>Nova Lista de Reprodução Vazia</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>D</keycap +></keycombo +></entry> +<entry +>Nova lista de música a partir de pasta.</entry> +</row> +<row> +<entry +><keycombo +action="simul" +>&Ctrl;<keycap +>T</keycap +></keycombo +></entry> +<entry +>Grava as alterações às marcas editadas.</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +</sect1> +</chapter> + +<chapter id="credits-and-licenses"> +<title +>Créditos e Licenças</title> + +<para +>&juk; Copyright © 2002, 2003, 2004 Scott Wheeler.</para> + +<para +>O &juk; é desenvolvido e mantido pelo Scott Wheeler <email +>wheeler@kde.org</email +>.</para> + +<para +>Muitos agradecimentos às seguintes pessoas que contribuíram para o &juk;:</para> + +<itemizedlist> +<listitem +><para +>Daniel Molkentin <email +>molkentin@kde.org</email +> pela acoplagem na bandeja do sistema, edição "incorporada" das marcas, correcções de erros, evangelização e apoio moral.</para> +</listitem> +<listitem +><para +>Tim Jansen <email +>tim@tjansen.de</email +> pela passagem para o <application +>GStreamer</application +></para> +</listitem> + +<listitem +><para +>Stefan Asserhäll <email +>stefan.asserhall@telia.com</email +> pelo suporte das combinações de teclas globais.</para> +</listitem> + +<listitem +><para +>Stephen Douglas <email +>stephen_douglas@yahoo.com</email +> pelos anúncios das faixas.</para> +</listitem> + +<listitem +><para +>Frerich Raabe <email +>raabe@kde.org</email +> pela suporte para adivinhar os dados das faixas e pelas correcções de erros.</para> +</listitem> + +<listitem +><para +>Zack Rusin <email +>zack@kde.org</email +> por mais coisas automáticas, incluindo o suporte do MusicBrainz.</para> +</listitem> + +<listitem +><para +>Adam Treat <email +>manyoso@yahoo.com</email +> pela conspiração na sabedoria do MusicBrainz.</para> +</listitem> + +<listitem +><para +>Matthias Kretz <email +>kretz@kde.org</email +> por ser o guru vizinho e amigável do aRts.</para> +</listitem> + +<listitem +><para +>Maks Orlovich <email +>maksim@kde.org</email +> por tornar o JuK mais amigável para a pessoas com terabytes de música.</para> +</listitem> + +<listitem +><para +>Antonio Larrosa Jimenez <email +>larrosa@kde.org</email +> pela interface DCOP.</para> +</listitem> + +</itemizedlist> + +<para +>Documentação Copyright © 2003, Lauri Watts e copyright © 2004 Michael Pyne.</para> + +<para +>Tradução de José Nuno Pires <email +>jncp@netcabo.pt</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-pt/docs/tdemultimedia/kaboodle/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/kaboodle/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaboodle/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/kaboodle/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/kaboodle/Makefile.in new file mode 100644 index 00000000000..f63814f70e4 --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- 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-pt/docs/tdemultimedia/kaboodle/index.cache.bz2 b/tde-i18n-pt/docs/tdemultimedia/kaboodle/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..58a0799d985 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaboodle/index.cache.bz2 diff --git a/tde-i18n-pt/docs/tdemultimedia/kaboodle/index.docbook b/tde-i18n-pt/docs/tdemultimedia/kaboodle/index.docbook new file mode 100644 index 00000000000..8c1e06ae6d5 --- /dev/null +++ b/tde-i18n-pt/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 % Portuguese "INCLUDE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>O Manual do &kappname;</title> + +<authorgroup> +<author +><firstname +></firstname +> <othername +></othername +> <surname +></surname +> <affiliation +> <address +><email +></email +></address> +</affiliation> +</author> +<othercredit role="translator" +><firstname +>Pedro</firstname +><surname +>Morais</surname +><affiliation +><address +><email +>morais@kde.org</email +></address +></affiliation +><contrib +>Tradução</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; é um reprodutor multimédia minimalista para o &kde; </para> +</abstract> + + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>Kapp</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction" +> <title +>Introdução</title +> <para +>A documentação do &kappname; não estava terminada quando o &kde; foi instalado neste computador.</para +> <para +>Se necessitar de ajuda, procure na <ulink url="http://www.kde.org" +>Página Web do &kde;</ulink +> actualizações a este documento ou para envie as suas dúvidas para a <ulink url="mailto:kde-user@kde.org" +>Lista de Utilizadores do &kde;</ulink +>.</para +> <para +><emphasis +>A Equipa do &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-pt/docs/tdemultimedia/kaudiocreator/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/Makefile.in new file mode 100644 index 00000000000..e1589cc434f --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- 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 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 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 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 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 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-pt/docs/tdemultimedia/kaudiocreator/cdconfiguration.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/cdconfiguration.png Binary files differnew file mode 100644 index 00000000000..ea98155eb8e --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/cdconfiguration.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/cddbconfigurationlookup.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/cddbconfigurationlookup.png Binary files differnew file mode 100644 index 00000000000..c2a92a94484 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/cddbconfigurationlookup.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/cddbconfigurationsubmit.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/cddbconfigurationsubmit.png Binary files differnew file mode 100644 index 00000000000..0dd2875282f --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/cddbconfigurationsubmit.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/cdinserted.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/cdinserted.png Binary files differnew file mode 100644 index 00000000000..d5473277cf1 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/cdinserted.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/encoderconfiguration.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/encoderconfiguration.png Binary files differnew file mode 100644 index 00000000000..0a38a9e66e7 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/encoderconfiguration.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/encodernotfound.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/encodernotfound.png Binary files differnew file mode 100644 index 00000000000..5a18fa9084b --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/encodernotfound.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/entersong1.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/entersong1.png Binary files differnew file mode 100644 index 00000000000..5c22fa7d0f6 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/entersong1.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/generalconfiguration.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/generalconfiguration.png Binary files differnew file mode 100644 index 00000000000..e6a66f3c595 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/generalconfiguration.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/index.cache.bz2 b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..768f630a47f --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/index.cache.bz2 diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/index.docbook b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/index.docbook new file mode 100644 index 00000000000..1e48a506f7b --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/index.docbook @@ -0,0 +1,1787 @@ +<?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 % Portuguese "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 davidrugge@mindspring.com +with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr +and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de +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 +>O Manual do &kaudiocreator;</title> + +<authorgroup> +<author +><firstname +></firstname +> <othername +></othername +> <surname +>alan</surname +> <affiliation +> <address +><email +>sorry@no.mail</email +>desculpe, sem e-mail.</address> +</affiliation> +</author> +</authorgroup> + +<othercredit role="translator" +><firstname +>José</firstname +><surname +>Pires</surname +><affiliation +><address +><email +>jncp@netcabo.pt</email +></address +></affiliation +><contrib +>Tradução</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 +>O &kaudiocreator; é um extractor de CDs de áudio para o 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 +>Introdução</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 +>O &kaudiocreator; é um extractor de CDs de áudio para o KDE. Com ele, poderá extrair facilmente os seus CDs de áudio para ficheiros MP3 ou OGG, ou ainda outros formatos, dependendo do codificador que tiver instalado no seu sistema.</para> + +<para +>O &kaudiocreator; é uma interface para o 'cdparanoia' (para extrair os dados do CD para ficheiros WAV no seu disco) e para muitos codificadores que comprimem e codificam esses ficheiros WAV. De momento, são suportados o Kame para o MP3, o Oggenc para o OGG e o FLAC (compressão sem perdas) são suportados por si só (poderá ter de instalar à mesma estes pacotes da sua distribuição). Contudo, poderá adicionar mais codificadores com o program (se os tiver instalados).</para> + +<para +>Em geral, a extracção de um CD de áudio é um processo em 2 passos: <itemizedlist> + <listitem +><para +>primeiro, as faixas/músicas do CD são extraídas para o computador em ficheiros WAV (sem perdas e sem compressão) e, de seguida</para +></listitem> + <listitem +><para +>num segundo passo, estes ficheiros WAV (normalmente um por música) são comprimidos no ficheiros MP3 ou OGG ou noutros formatos, como o FLAC sem perdas.</para +></listitem> + </itemizedlist> +</para> + +<para +>Para o primeiro passo, a extracção do CD, o &kaudiocreator; usa o cdparanoia. Quase todas as distribuições têm um pacote pré-compilado, por isso instale-o, se não o tiver já feito.</para> + +<para +>Para o 2o passo, irá necessitar do 'lame' (para o MP3), do 'oggvorbis' (para o OGG) ou de outros codificadores instalados. Todos estes programas são normalmente fornecidos com as distribuições de Linux que poderá ter, como tal poderá não ser necessário compilar nada por si. Poderá apenas necessitar de instalar qualquer um destes pacotes. Só terá de instalar o pacote do codificador que precisar. Se, por exemplo, não necessitar do FLAC, não precisa de o instalar.</para> + +<para +>Qual o formato de ficheiro/codificador a usar? O capítulo <link linkend="what_encoder" +>Que codificador</link +> dá-lhe uma breve introdução sobre os codificadores, a qualidade do áudio e os factores de compressão.</para> + +<para +>Uma coisa sobre a cópia de CDs de áudio protegidos contra cópias: Como já foi dito, o &kaudiocreator; usa o cdparanoia para extrair os dados de áudio do CD. Este programa não está desenhado para quebrar nenhuma protecção de cópia. Por isso, a menos que o seu 'firmware' de leitura de CD/DVD dê a volta à protecção, não irá conseguir extrair o áudio dos CDs protegidos. Em qualquer um dos casos, o &kaudiocreator; em si não consegue lidar com os mecanismos de protecção. Problema seu, não compre CDs de áudio, para que o mercado se deixe desta idiotice!</para> + +<para +>Ei, ainda a ler? Mesmo que tenha acedido ao menu de ajuda, após ter aberto o programa da primeira vez, sem ter uma dica de como prosseguir a partir deste ecrã mais ou menos vazio (especialmente se não tiver nenhum CD áudio no leitor ao iniciar o programa) e com um menu anormalmente pequeno?</para> + +<para +>Não se preocupe, este manual dir-lhe-á como extrair um CD com este programa. Para além da explicação normal dos comandos/opções dos programas, existe uma secção especial com um <link linkend="Example" +>exemplo completo</link +>. Primeiro que tudo, irá aprender a configurar as opções gerais. Isto inclui a sua unidade de CDs (ID do dispositivo), a pasta de ficheiros temporários, a pasta de destino principal, na qual será criada uma pasta com o nome apropriado para a sua escolha, a partir dos parâmetros de cada CD, o codificador a usar (como o Lame para o MP3 ou o Oggvorbis para o OGG) e, entre outras opções, se quer usar o freedb para obter os dados do seu CD da Internet ou (paranóia, não o cdparanoia :-) ) se deseja introduzir todos os dados manualmente.</para> +<para +>Embora a configuração só tenha de ser feita uma vez (poderá querer afiná-la tantas vezes quantas quiser, até que encontre uma configuração adequada para si), irá então aprender o dia-a-dia de extrair um CD para o disco rígido. É aí (espera-se) que irá compreender e aprender a interface com que se deparou da primeira vez.</para> + +<para +>Como último comentário, o &kaudiocreator; é um programa bastante flexível que poderá invocar bastantes codificadores. Como tal, este manual (de momento) não cobre todas as opções e comandos possíveis. Use-o como ponto de partida para explorar você mesmo o programa, se sentir a necessidade de mais do que é coberto aqui. Normalmente, poderá obter mais informações sobre os programas/codificadores (nome da aplicação) que são chamados pelo &kaudiocreator; se abrir uma consola e escrever 'man nome-aplicação', 'nome-aplicação -help', 'nome-aplicação --help' ou 'nome-aplicação -h'.</para> + +<para +>E agora: Divirta-se...</para> +</chapter> + +<chapter id="using-kaudiocreator"> +<title +>Usar o &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 +>Do que é que estivemos a falar? Bem, leu isto, por isso já deve ter iniciado o programa. Dever-se-á parecer a algo do género: </para> +<para> + +<!-- Note that all graphics should be in .png format. Use no gifs because of +patent issues. --> + +<screenshot> +<screeninfo +>Aqui está uma imagem do &kaudiocreator;</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="kaudiocreatormainwindow800.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da janela principal do &kaudiocreator;</phrase> + </textobject> + </mediaobject> +</screenshot> +</para> +<para +>A janela principal, após iniciar o programa. </para> + +<sect1 id="kaudiocreator-features"> +<title +>Uma breve lista das funcionalidades do &kaudiocreator;</title> + +<itemizedlist> + <listitem +><para +>consegue codificar em vários formatos - depende dos programas/codificadores que tem instalados (MP3, OGG, FLAC, etc.)</para +></listitem> + <listitem +><para +>pode obter a informação do CD do freedb, através da Internet, ou poderá funcionar completamente desligado, indicando tudo manualmente</para +></listitem> + <listitem +><para +>pode adicionar marcas aos ficheiros criados - depende do formato em que se codifica</para +></listitem> + <listitem +><para +>configura os nomes das pastas e das músicas, de acordo com algumas combinações ajustáveis da informação do CD</para +></listitem> +</itemizedlist> + +</sect1> +</chapter> + +<chapter id="commands"> +<title +>Referência de Comandos</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 é apenas uma breve lista dos comandos da janela principal. Veja o <link linkend="Example" +>exemplo completo</link +> para mais detalhes sobre como usar este programa e algumas imagens com descrições das páginas de configuração do programa.</para> + +<sect1 id="kaudiocreator-mainwindow"> +<title +>A janela principal do &kaudiocreator;</title> + +<sect2> +<title +>O Menu Ficheiro</title> +<para> +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>w</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +> <guimenuitem +>Ejectar o CD</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre a unidade e ejecta o CD.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>C</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +> <guimenuitem +>Pesquisa no CDDB</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Inicia a pesquisa no CDDB dos dados, de acordo com a sua configuração em 'Configuração - Configurar o KAudioCreator... - Pesquisa do CDDB. (Pode ser local ou na rede, onde neste último caso terá de se ligar primeiro à Internet.)</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>E</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +> <guimenuitem +>Editar o Álbum</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre a janela do Editor do Álbum.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>A</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +> <guimenuitem +>Seleccionar Todas as Faixas</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Selecciona todas as faixas para processamento (extracção e, se estiver configurada, a codificação).</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>A</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +> <guimenuitem +>Deseleccionar Todas as Faixas</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Desliga a selecção de todas as faixas para processamento.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>S</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +> <guimenuitem +>Extrair a Selecção</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Inicia a extracção e, se estiver seleccionado um codificador na página 'Configuração - Configurar o KAudioCreator... - Codificador', a codificação.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>S</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +> <guimenuitem +>Extrair a Selecção (com)</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre um sub-menu com uma lista de todos os codificadores disponíveis, para que possa extrair uma selecção com outro codificador diferente do normal. Lembre-se que o codificador já deverá ter sido configurado na página 'Configuração - Configurar o KAudioCreator... - Codificador'.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>C</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +> <guimenuitem +>Remover as Tarefas Terminadas</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Remove as tarefas completas da janela de 'Tarefas'.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>F</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +> <guimenuitem +>Codificar o Ficheiro...</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre um navegador de ficheiros, para que possa seleccionar um ficheiro já extraído e codificá-lo em vez de extrair e codificar um CD completo.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>Q</keycap +></keycombo +> </shortcut +> <guimenu +>Ficheiro</guimenu +> <guimenuitem +>Sair</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Sai do &kaudiocreator;.</action +></para +></listitem> +</varlistentry> +</variablelist> +</para> + +</sect2> + +<sect2> +<title +>O Menu Configuração</title> +<para> +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +></keycap +></keycombo +> </shortcut +> <guimenu +>Configuração</guimenu +> <guimenuitem +>Esconder/Mostrar a Barra de Ferramentas</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Activa ou desactiva a barra de ferramentas.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>a</keycap +></keycombo +> </shortcut +> <guimenu +>Configuração</guimenu +> <guimenuitem +>Esconder/Mostrar a Barra de Estado</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Activa ou desactiva a barra de estado.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>h</keycap +></keycombo +> </shortcut +> <guimenu +>Configuração</guimenu +> <guimenuitem +>Configurar os Atalhos...</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre a janela de configuração para definir os atalhos (combinações de teclas) para os comandos do menu.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>b</keycap +></keycombo +> </shortcut +> <guimenu +>Configuração</guimenu +> <guimenuitem +>Configurar as Barras de Ferramentas...</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre a janela de configuração para configurar a barra de ferramentas.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>N</keycap +></keycombo +> </shortcut +> <guimenu +>Configuração</guimenu +> <guimenuitem +>Configurar as Notificações...</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre a janela de configuração do tipo de notificações (como os registos, campainhas) para os eventos do programa (como a extracção do CD terminada).</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>C</keycap +></keycombo +> </shortcut +> <guimenu +>Configuração</guimenu +> <guimenuitem +>Configurar o KAudioCreator...</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Abre a janela de configuração principal do &kaudiocreator; com várias páginas (como o Codificador, para a configuração do codificador). Terá de ir lá, antes de poder usar com sucesso este programa!</action +></para +></listitem> +</varlistentry> +</variablelist> +</para> + +</sect2> + +<sect2> +<title +>O Menu <guimenu +>Ajuda</guimenu +></title> +&help.menu.documentation; </sect2> + +</sect1> +</chapter> + +<chapter id="what_encoder"> +<title +>Qual o formato do codificador/ficheiro a usar - acerca da qualidade do áudio, os codificadores e as taxas de compressão</title> + +<para +>Qual o codificador a usar?</para> + +<para +>Se não quiser perder qualquer informação de áudio, irá precisar de um formato de áudio sem perdas. Para além do FLAC, existem outros como o 'shorten' ou o 'monkey', que poderão estar disponíveis para a sua distribuição. A desvantagem é que as taxas de compressão poderão ser baixas e dificilmente algum dispositivo comercial conseguirá reproduzir estes ficheiros.</para> + +<para +>Entre os formatos de áudio que perdem de facto informações devido à compressão dos dados, de acordo com o seu modelo psicoacústico, o MP3 e o OGG são os mais comuns. O OGG poderá ter hoje uma ligeira vantagem sobre o MP3 em termos de qualidade do áudio em taxas menores (até aos 128 kbps) mas, acima dessa taxa, as diferenças tornam-se menos importantes, dado que ambos os codificadores produzem uma qualidade de áudio muito boa.</para> + +<para +>Em resumo:</para> + +<para +>FLAC <itemizedlist> + <listitem +><para +>+ compressão sem perdas</para +></listitem> + <listitem +><para +>+ livre</para +></listitem> + <listitem +><para +>+ qualidade de som muito boa (sem perdas)</para +></listitem> + <listitem +><para +>- taxa de compressão baixa (provavelmente só cerca de 2.x)</para +></listitem> + <listitem +><para +>- suporte para leitores de 'hardware' inexistente (que se saiba)</para +></listitem> + </itemizedlist> +</para> + +<para +>OGG <itemizedlist> + <listitem +><para +>- perda de informação do áudio (a quantidade depende da taxa de dados final)</para +></listitem> + <listitem +><para +>+ livre</para +></listitem> + <listitem +><para +>+ qualidade de áudio boa a muito boa (taxas de dados altas)</para +></listitem> + <listitem +><para +>+ taxa de compressão alta (dependendo da qualidade de áudio resultante)</para +></listitem> + <listitem +><para +>- suporte para leitores por 'hardware' fraco</para +></listitem> + </itemizedlist> +</para> + +<para +>MP3 <itemizedlist> + <listitem +><para +>- perda de informação do áudio (a quantidade depende da taxa de dados final)</para +></listitem> + <listitem +><para +>o 'não tão' livre; o 'lame' vem de graça com a maioria das distribuições, mas existem questões de licenças</para +></listitem> + <listitem +><para +>+ qualidade de áudio boa a muito boa (taxas de dados elevadas), ainda que ligeira menor a taxas menores, em comparação com o OGG</para +></listitem> + <listitem +><para +>+ taxa de compressão alta (dependendo da qualidade de áudio resultante)</para +></listitem> + <listitem +><para +>+ bom suporte para leitores por 'hardware'</para +></listitem> + </itemizedlist> +</para> + +<para +>Como foi mencionado anteriormente, tanto o MP3 como o OGG são ambos formatos de áudio com os quais poderá perder informações de som no fim. Não poderá voltar ao original, assim que tiver os ficheiros MP3/OGG. Poderá criar ficheiros WAV a partir destes e até gravá-los de novo num CD para os tocar num leitor de CDs (embora os leitores de DVDs possam tocar tanto WAV como MP3, com menos hipóteses para o OGG), mas os ficheiros WAV gerados a partir de um ficheiro MP3 ou OGG não serão tão bons como os originais. Na realidade, dependendo do seu sistema HiFi e da taxa de compressão dos dados que escolheu ao criar os MP3s/OGGs, poderá até nem notar diferença. Contudo, se não quiser perder nenhuma informação de som mas quiser à mesma comprimir os seus ficheiros WAV, deverá ver o 'flac', o 'shorten' ou o 'monkey'. Contudo, estes codificadores não irão comprimir muito mais que um factor 2.x .</para> + +<para +>Até que não seja o entusiasta absoluto, irá optar provavelmente entre o OGG e o MP3. Vá então pelo</para> + +<para +>OGG - se quiser ouvir músicas apenas no seu computador ou num servidor de músicas baseado em computador e/ou se já tiver um dos poucos leitores de OGG por 'hardware'.</para> + +<para +>MP3 - se quiser ouvir a sua música noutros dispositivos também, como os leitores de DVD normais, os leitores portáteis (caneta USB, cartão Flash, disco) ou em auto-rádios especiais. Nos dias de hoje, a maioria destes dispositivos só suportam o formato MP3.</para> + +<para +>A nível de qualidade, ambos os formatos de áudio deverão ser óptimos, dependendo da taxa de compressão que escolher. Para o MP3 (e provavelmente o OGG), uma taxa de 128 kbps resulta numa taxa de compressão de 11, em comparação com o ficheiro WAV original guardado no CD. Isso poderá ser bom em viagens, mas não é suficiente para um sistema estéreo HiFi doméstico dos bons. 192 kbps é um bom compromisso, mesmo para o seu sistema HiFi na sua sala de estar. Isso dar-lhe-á uma taxa de compressão de 7,3.</para> + +<para +>Já há alguns anos, os peritos não eram capazes de distinguir um MP3 de 256 kbps do CD original, e isto foi um teste simples com um sistema HiFi que não conseguirá comprar. :-) Mesmo isso conseguirá reduzir o espaço de armazenamento num factor de 5,5 , o que é muito bom. Na maioria dos sistemas modernos, poderá também usar uma taxa de dados variável. Aqui, o codificador varia a taxa de dados, de acordo com a complexidade da música e com o seu modelo psicoacústico (uau :-) ). A opção do 'lame' '--preset extreme' gera um ficheiro com uma VBR (variable bit rate - taxa de dados variável, em oposição à CBR, constant bit rate - taxa de dados constante) de 224 a 256 kbps, dependendo da complexidade da música. Isto irá comprimir o original num factor até 6,3 e irá tocar em praticamente tudo o que existe de momento no mercado.</para> + +<para +>A menos que tenha um equipamento extremamente caro (estamos a falar em milhares de euros ou dólares) e um ouvido muito bem treinado, provavelmente não notará qualquer diferença na taxa CBR máxima de 320 kbps, acredite. Mesmo que resulte à mesma numa taxa de 4,4. Já agora, a configuração '--preset extreme' irá usar, de facto, os 320 kbps para as partes de música complexa e comprime a música menos complexa, de modo a atingir uma taxa média de 224 a 256 kbps.</para> + +<para +>Existe uma lista pequena dos parâmetros de qualidade do áudio e das taxas de compressão resultantes para o LAME (MP3) (veja o lame --help para mais informações): <itemizedlist> + <listitem +><para +>'--preset extreme' = VBR de 224 a 256 kbps, com uma taxa de compressão até 6,3. Usa até 320 kbps para as partes complexas e muito menos para as partes menos complexas da música. É suficientemente bom para os sistemas HiFi domésticos de alta qualidade. Primeira escolha!</para +></listitem> + <listitem +><para +>'--preset extreme -b 256 = CBR de 256 kbps, taxa de compressão de cerca de 5,5 . Usa sempre 256 kbps para as partes complexas e simples da música. Alguns leitores antigos necessitam de CBRs. É suficientemente bom para os sistemas HiFi domésticos de alta qualidade.</para +></listitem> + <listitem +><para +>'-h' = CBR com estéreo conjunto de 128 kbps, uma taxa de compressão aproximada de 11. São 128 kbps para todas as partes da música. É suficientemente bom para as músicas infantis, para os leitores portáteis e, de certa forma, para os auto-rádios. Não é bom o suficiente para os sistemas HiFi domésticos de boa qualidade.</para +></listitem> + </itemizedlist> +</para> + +</chapter> + + +<chapter id="parameters"> +<title +>Parâmetros de informação do CD</title> + +<para +>A informação do CD que introduzir ou o que o programa obter automaticamente do 'freedb' através da Internet, está disponível como uma lista de parâmetros dentro do programa, que poderá ser processada e usada com o &kaudiocreator; e os programas de codificação, para poder criar os nomes das pastas e ficheiros e/ou gerar as marcas nos ficheiros das músicas.</para> + +<para +>Ao usar com os programas de codificação, normalmente terá de usar uma combinação de opções do programa codificador, em conjunto com estes parâmetros. O manual ou ajuda dos codificadores dir-lhe-á as opções para estes programas.</para> + +<para +>P.ex., para adicionar o título do CD a uma marca, ao codificar os MP3 com o Lame, terá de adicionar a opção -tt do 'lame', seguida do parâmetro do título do &kaudiocreator;. O resultado fica algo do género '... -tt {título} ...' .</para> + +<para +>Este é um resumo dos parâmetros do &kaudiocreator; que poderá usar (= nome do botão no assistente):</para> +<itemizedlist> + <listitem +><para +>%{albumartist} - artista do álbum (Artista)</para +></listitem> + <listitem +><para +>%{albumtitle} - título do álbum (Álbum)</para +></listitem> + <listitem +><para +>%{artist} - artista da música (Artista da Faixa)</para +></listitem> + <listitem +><para +>%{albumcomment} - comentário do álbum (Comentário)</para +></listitem> + <listitem +><para +>%{comment} - comentário da música (Comentário da Faixa)</para +></listitem> + <listitem +><para +>%{extension} - a extensão do ficheiro, como por exemplo 'mp3' ou 'ogg' (Extensão)</para +></listitem> + <listitem +><para +>%{genre} - género da música (Género)</para +></listitem> + <listitem +><para +>%{title} - título da música da faixa actual (Título da Faixa)</para +></listitem> + <listitem +><para +>%{number} - número da faixa actual (Número da Faixa)</para +></listitem> + <listitem +><para +>%{~} - atalho-padrão do Linux para a pasta pessoal do utilizador (Pasta Pessoal)</para +></listitem> +</itemizedlist> + +</chapter> + + +<chapter id="freedb"> +<title +>freedb - o que é isso?</title> + +<para +>Não está sozinho com a sua vontade de ouvir a sua música, independentemente do seu CD de áudio. As pessoas em todo o mundo estão a converter os seus CDs para um formato diferente. Todos têm a mesma experiências: a parte que consome mais tempo neste processo é a introdução dos dados do CD. Como tal, algumas pessoas tiveram a brilhante ideia, que seria muito mais eficiente, se só uma pessoa fizesse isso por cada CD, e todos os outros fossem obter os dados do CD e poupassem o trabalho de escrita.</para> + +<para +>Isso é o que significa o 'freedb', uma base de dados de livre onde os extractores de CDs de áudio podem obter/enviar a informação de um CD, para que toda a gente possa obter essa informação, em vez de a introduzir no computador sempre que necessite. Lembre-se que só se está a falar de texto aqui: o título, artista, nomes das músicas, etc., não o ficheiro de áudio em si.</para> + +<para +>Como tal, é legal e seguro de usar?</para> + +<para +>Sim, deverá ser legal, mas o autor desta documentação não é um advogado. Contudo, ninguém o poderá impedir de enviar as informações do CD, que estão disponíveis de forma gratuita no CD. Mais ainda, sem o CD a informação é mais ou menos irrelevante, pelo que não poderá causar qualquer dano aos artistas e às editoras de áudio. Poderá obter todas as informações à mesma, se for a uma loja de CDs, quer a nível físico quer na rede.</para> + +<para +>É seguro usá-lo? Bem, para obter a informação do CD, não terá de revelar nenhuns dados pessoais. Existem réplicas do freedb em vários países e poderá até transferir a base de dados para você trabalhar desligado. (Atenção, dado que no início de 2005, já é um ficheiro TAR.BZ2 de 370 MB!). Ser-lhe-á pedido um endereço de e-mail para obter os dados, se bem que este poderá ser falsificado. Até será recomendado, para garantir que o seu endereço de e-mail não aparece acidentalmente em público e passe a receber montes de lixo electrónico. O sistema que inicia o serviço diz que não irá registar os seus dados (por isso, para quê perguntar agora??) e, por outro lado, muitas réplicas estão nas mãos de instituições de confiança.</para> + +<para +>No &kaudiocreator;, terá de activar uma opção para activar o SMTP (envio de um endereço) e poderá indicar um outro endereço diferente (falsificado) para usar no 'freedb', em vez do usado na configuração do sistema. Da forma como a configuração está desenhada, parece que o endereço de e-mail não é usado ao receber os dados do servidor. (Mas não se é o programador, pelo que não se verificou o código.)</para> + +<para +>Contudo, para poder fornecer resultados, o sistema de iniciação do 'freedb' perguntar-lhe-á que, no caso de enviar dados (acerca de um CD ainda não listado ou a correcção de um item existente), devê-lo-á fazer com um endereço de e-mail válido. É um serviço óptimo, como tal respeite-o, no caso de ter algo para contribuir! Não há nada que preocupar, para além do facto de o seu endereço de e-mail cair nas mãos erradas e receba (mais) lixo. (Poderá simplesmente não usar o seu 'melhor' endereço). Leia por favor com atenção a FAQ e os How-To's respectivos no freedb.org se pensa que tem um CD cujos dados não foram ainda enviados para a base de dados.</para> + +<para +>Existem réplicas da base de dados mestra em vários países. Quando configurar o &kaudiocreator; para usar o 'freedb', por favor use a réplica mais próxima de si. Isto poupa largura de banda na rede e distribui a carga entre os servidores.</para> + +<para +>Visite o freedb.org para obter uma lista actualizada das réplicas, para obter na Internet as informações dos CDs, sempre que extrair um CD ou obtenha a base de dados completa ou actualizações da mesma (normalmente mensais) da base de dados.</para> + +<para +>Oh, como é que funciona?</para> + +<para +>Bem, devido a alguma magia, é gerado um ID (mais ou menos) único a partir dos dados do CD, quando este for introduzido na unidade. Este poderá ser o número de faixas e os seus tamanhos e/ou outras coisas. Veja o freedb.org para saber mais informações. De forma engraçada, mas infelizmente, o ID criado não parece ser único para cada CD. Por isso, algumas vezes, um CD pode ser classificado numa categoria errada, fora das 11 definidas pelo freedb, dado que já existe um CD com a mesma chave na base de dados, para a categoria correcta. Por razões de compatibilidade, eles não querem mudar a geração de chaves. Contudo, isto deverá acontecer apenas a título excepcional. :-) Verifique as categorias no freedb.org antes de enviar. Por exemplo, a categoria Rock contém o Pop e o Rap também, dado que não existe uma categoria própria para o Pop ou o Rap.</para> + +</chapter> + + +<chapter id="faq"> +<title +>Perguntas e Respostas</title> +&reporting.bugs; &updating.documentation; <qandaset id="faqlist"> +<qandaentry> +<question> +<para +>Qual o extractor (programa) que é usado para extrair as músicas do CD para ficheiros WAV no meu computador?</para> +</question> +<answer> +<para +>Bem, o código não foi visto, mas diz-se que é usado o 'cdparanoia' para tal. Foi sempre a melhor escolha para extrair CDs de áudio. Lembre-se que terá de instalar o pacote 'cdparanoia' da sua distribuição, se não estiver já instalado.</para> +<para +>Entretanto, o cdda2wav apareceu e poderão existir áreas, como os CDs mistos, onde pode já ter passado o cdparanoia. Para a extracção de CDs simples, o cdda2wav usa agora a mesma biblioteca que o cdparanoia. Contudo, esta informação não é muito útil para si, dado que não consegue alterar o extractor do CD no &kaudiocreator;. No caso de ter problemas a extrair um CD e quiser tentar o 'cdda2wav, terá de usar outro programa como o 'grip', um extractor em GTK e que lhe permite definir o programa de extracção a usar.</para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>Quais os formatos dos codificadores/ficheiros suportados? Posso criar ficheiros MP3 ou OGG?</para> +</question> +<answer> +<para +>Pode escolher o codificador e, como tal, o formato do ficheiro em que deseja transformar os ficheiros WAV extraídos. Da primeira vez, irá encontrar itens predefinidos para o 'lame' (MP3), o 'oggenc' (OGG) e o 'flac' (um formato de áudio comprimido sem perdas) na página de configuração do codificador. Mas poderá adicionar outros codificadores nessa página.</para> +<para +>Lembre-se que terá de instalar o pacote do codificador da sua distribuição que desejar usar primeiro, antes de o poder usar de facto. (Isto é obrigatório, mesmo para os codificadores predefinidos!). Dê uma vista de olhos no capítulo <link linkend="what_encoder" +>Que codificador</link +> para mais informações sobre os codificadores.</para> +<para +>Após a instalação de um codificador, poderá obter mais informações sobre as suas opções, se escrever algo do género 'lame -help' ou 'lame --help' numa consola (p.ex., o konsole). Nesse caso, o 'lame' será substituído pelo nome do codificador que tiver instalado.</para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>Não há muito trabalho aqui, ou há?</para> +</question> +<answer> +<para +>Ah, uma quantidade enorme de razões para tal. Verifique a configuração do ID do dispositivo da unidade de CD/DVD, as permissões de leitura/acesso e se tiver instalado o 'cdparanoia' e o codificador de áudio da sua escolha (o 'lame' para MP3s, o 'oggenc' para os OGGs, flac etc.). Tente invocar ambos os programas numa linha de comandos num terminal. Isso poder-lhe-á dar uma dica do que se passa de errado.</para> +<para +>Oh, por alguma razão, não tentou extrair o áudio de um CD com protecções de cópia? Verifique a capa do CD. Isso não irá funcionar! Para a próxima, compre CDs de áudio desprotegidos.</para> +<para +>Existe um capítulo com um <link linkend="Example" +>exemplo completo</link +>. Mesmo que queira experimentar configurações diferentes, poder-lhe-á dar uma ideia de como prosseguir.</para> +</answer> +</qandaentry> +</qandaset> +</chapter> + + +<chapter id="Example"> + +<title +>Exemplo de um primeiro arranque com a configuração básica até à primeira extracção de um CD</title> + +<para +>Leu o manual completo, compreendeu tudo e continua à mesma sem saber o que fazer? Bem, não há problema, basta seguir este exemplo passo-a-passo e irá obter informações suficientes para ajustar apenas as áreas que farão com que o programa faça exactamente o que pretende.</para> + +<para +>Neste exemplo, será iniciado o programa pela primeira vez, com tudo configurado e será extraído o primeiro CD. Será usado o 'lame --preset extreme' para criar MP3s com um VBR (Variable Bit Rate - Taxa de Dados Variável) de 224 a 256 kbps de média e marcas ID3V1.</para> + +<para +>Deverá ter o 'cdparanoia' e o 'lame' instalados no seu sistema. Ambos os programas deverão estar disponíveis como um pacote pré-compilado para a sua distribuição de Linux. Contudo, poderá ter de perguntar a um motor de busca para obter um pacote adequado do 'lame', dado que este se considera, normalmente, não-livre de todo. Em qualquer um dos casos, poderá não ter de compilar a partir do código o que, obviamente, poderá sempre.</para> + +<para +>A estrutura de organização da música no disco é: <itemizedlist> + <listitem +><para +>nome da pasta principal de todos os CDs : /usr/share/cd</para +></listitem> + <listitem +><para +>na qual, existe para cada CD uma sub-pasta : artista - título - ano</para +></listitem> + <listitem +><para +>na sub-pasta, os nomes das músicas : #faixa - título-faixa</para +></listitem> + </itemizedlist> +</para> +<para +>Em resumo : /usr/share/cd/artista - título - ano/#faixa - título</para> +<para +>Certifique-se por favor que a pasta '/usr/share/cd' existe e que tem permissões de escrita para ela (p.ex., tente copiar algo para ela com o Konqueror).</para> + +<para +>O exemplo está dividido em 2 secções: <itemizedlist> + <listitem +><para +>a primeira cobre a configuração básica do &kaudiocreator;, algo que só poderá fazer uma vez e</para +></listitem> + <listitem +><para +>a segunda que descreve o processo de extrair algo de facto de um CD, o que fará sempre por cada CD que extrair.</para +></listitem> + </itemizedlist> +</para> + +<para +>Aqui vamos nós...</para> + +<sect1 id="Basic-Setup"> + <title +>E 1 Configuração Básica</title> + + <para +>Será configurado o codificador para comprimir a música (lame) e, como tal, o formato do ficheiro de áudio (MP3), assim como a qualidade do áudio resultante (--preset extreme = +> VBR 224 a 256 kbps). Poderá definir onde é que os ficheiros serão colocados e qual a estrutura usada para os guardar. Será configurado o programa para usar o freedb, de modo a obter os dados do CD através da Internet, dado que somos preguiçosos.</para> + + <para +>Embora possa sempre alterar qualquer uma destas opções, provavelmente não irá alterá-las sempre que extrair um CD, logo que tenha encontrado uma configuração conveniente.</para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.1 Passo 01: Configurar o ID do dispositivo do seu leitor/gravador de CD/DVD</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Na janela principal:</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="kaudiocreatormainwindow800.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da janela principal do &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>configure o 'Dispositivo:' como '/dev/cdrom'</para> + <para +>O ID do dispositivo é processado pelo programa de extracção, para que possa ler os dados/músicas do CD.</para> + <para +>Normalmente, o /dev/cdrom é uma ligação simbólica para o ID do dispositivo verdadeiro da sua unidade. Se isso não funcionar ou se tiver mais que uma unidade de CD/DVD, poderá indicar o ID do dispositivo exacto. Se puder aceder à sua unidade com outros programas, dê uma vista de olhos no '/etc/fstab' e tente os itens de dispositivos do CD-ROM e/ou unidades de DVD's aqui indicadas.</para> + <para +>Não há nada lá, falta de sorte?</para> + <para +>Se estiver a executar o 'kernel' 2.6:</para> + <para +>Se tiver uma das unidades comuns ATAPI (ou IDE), com o 'kernel' 2.6, o ID do dispositivo será algo de /dev/hda a /dev/hdd. O mestre, no canal 2, é um bom ponto de partida: isso será o '/dev/hdc'. Se os seus discos rígidos forem todos S-ATA, o /dev/hda poderá resultar. As unidades SCSI nativas começam em /dev/sda, a menos que tenha discos rígidos S-ATA, que aparecem primeiro na lista; por isso, dependendo do número de discos, a unidade de CD/DVD irá começar em /dev/sdb ou /dev/sdc .</para> + <para +>Se correr o 'kernel' 2.4:</para> + <para +>As unidades de CD/DVD são acedidas através de SCSI, como tal os dispositivos começam em /dev/sda .</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.2 Passo 02: Página Geral de Configuração</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Configuração -> Configurar o KAudioCreator... -> Geral</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="generalconfiguration.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da Página Geral de Configuração do &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>A página de 'Configuração Geral'. Não há muito a fazer aqui. Poderá definir alguma formatação adicional, de qualquer forma. Para o exemplo em questão, basta deixar tudo como está na imagem. </para> + <para +>Basta assinalar a opção 'Perguntar se a informação não estiver completa'; por isso, será informado se alguns dados para gerar as marcas não estiverem disponíveis.</para +></listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.3 Passo 03: Página de Configuração do CD</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Configuração -> Configurar o KAudioCreator... -> CD</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="cdconfiguration.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da Página de Configuração do CD do &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>A página de 'Configuração do CD'. Basta assinalar as duas opções. Os autores são preguiçosos e querem que os dados do CD sejam obtidos automaticamente da Internet, a partir de um servidor do freedb.</para> + <para +>Como nota, é necessário estar ligado à rede ao extrair o CD, para poder aceder ao servidor do freedb.</para> + <para +>A segunda opção é conveniente, dado que se um item de CD for encontrado, este CD será extraído imediatamente. Isto tem um risco baixo, porque se estiver insatisfeito com o item da base de dados e com os nomes dos ficheiros e marcas, poderá alterar os dados facilmente. Os nomes das pastas e dos ficheiros com o Konqueror->Mudar o Nome e as marcas de ID3 com o kid3, o marcador do KDE.</para> + <para +>Mais uma nota deste exemplo: Se quiser introduzir tudo manualmente, desligue as opções, para não usar o freedb. Poderá usar o freedb localmente, no modo desligado, se obter a base de dados previamente. Contudo, serão cerca de 370 MB, por isso pense duas vezes se vale a pena. Para usar o freedb no modo desligado, terá de assinalar aqui as opções, pelo menos a primeira. O modo está definido na página seguinte.</para +></listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.4 Passo 04: Página de Pesquisa da Configuração do CDDB</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Página de Configuração -> Configurar o KAudioCreator... -> CDDB -> Pesquisa</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="cddbconfigurationlookup.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da Página de Pesquisa da Configuração do CDDB do &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>O CDDB é o freedb para nós. A configuração usada para a pesquisa dos dados, para extrair a informação dos CDs do servidor do freedb da Internet. Mas como é que o sistema sabe os dados a obter? Leia a <link linkend="freedb" +>secção acerca do freedb</link +>. Basta configurar tudo como aparece na imagem.</para> + <para +>Explicação breve:</para> + <para +>Modo: Não foi transferida a base de dados, como tal será usada apenas a versão remota no servidor da Internet.</para> + <para +>Servidor de CDDB: POR FAVOR (sim, estou a gritar!) vá ao freedb.org e dê uma vista de olhos numa réplica perto de si. Desta forma, a carga é distribuída entre as réplicas. Contudo, como primeira tentativa, esta opção deverá funcionar, mas POR FAVOR...</para> + <para +>Porto e Transporte: Existem 2 combinações, que até as réplicas deverão compreender.</para> + <itemizedlist> + <listitem +><para +>Porto=80 e Transporte=HTTP</para +></listitem> + <listitem +><para +>Porto=8880 e Transporte=CDDB</para +></listitem> + </itemizedlist> + <para +>Ambas funcionam bem, no que respeita ao servidor, mas como muitas 'firewalls' barram o porto 8880 por omissão, poderá ter mais sorte com o porto 80, dado que este porto está normalmente aberto para navegar pela Internet.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.5 Passo 05: Página de Envio da Configuração do CDDB</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Página de Configuração -> Configurar o KAudioCreator... -> CDDB -> Envio</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="cddbconfigurationsubmit.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da Página de Envio da Configuração do CDDB do &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Neste exemplo, não se pretende enviar quaisquer dados do CD para o servidor do 'freedb'. Desligue a primeira opção e deverá ficar tudo bem.</para> + <para +>Nota para além deste exemplo: Se um dia encontrar um CD que não seja ainda conhecido no servidor do freedb ou encontrar um erro num item do CD, poderá enviar os dados novos/actualizados. Assinale a primeira opção no topo desta página e use depois o seu endereço de e-mail conhecido no sistema, que o &kaudiocreator; já detectou previamente ou assinale a opção exclusiva inferior e indique um endereço de e-mail novo. Leia por favor a <link linkend="freedb" +>secção do freedb</link +> primeiro. Será pedido um endereço de e-mail ao enviar itens novos ou actualizados para o servidor, e deverá ler a informação no freedb.org, acerca dos números de versões, ao enviar informação actualizada, no caso de ter descoberto um erro.</para +></listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.6 Passo 06: Página de Configuração do Extractor</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Configuração -> Configurar o KAudioCreator... -> Extractor</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="ripperconfiguration.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da Página de Configuração do Extractor do &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Basta usar a configuração da imagem. (Certifique-se que a pasta '/tmp' existe no seu sistema!)</para> + <para +>'Apitar no fim de cada extracção' : assinale isto para ter uma reacção audível do progresso.</para> + <para +>'...faixas a extrair de cada vez' : desculpe, não consegue pensar numa razão para fazer mais que uma com apenas uma unidade? Ler e codificar em paralelo? Não sei, tente você mesmo.</para> + <para +>'Auto-ejectar o CD' : ok, assim sabe quando acabou. Faça o que preferir.</para> + <para +>'Pasta Temporária por Omissão' : Se assinalar isto, poderá/deverá indicar a pasta para onde os ficheiros WAV são extraídos. Isto poderá ser útil se só tiver espaço noutra unidade. Se não estiver assinalada, os ficheiros serão criados na sua pasta pessoal. Recorde este local, se quiser fazer alguma coisa com os próprios ficheiros WAV.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.7 Passo 07: Página de Configuração do Codificador</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Configuração -> Configurar o KAudioCreator... -> Codificador</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="encoderconfiguration.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da Página de Configuração do Codificador do &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Finalmente, a configuração do codificador. Aqui, será usado o 'lame'. Aqui existem mais algumas coisas para fazer:</para> + <para +>Carregue no 'Lame'</para> + <para +>Carregue no botão 'Configurar...'</para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="lameconfiguration.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da Configuração do Lame do &kaudiocreator;</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Uff, indique tudo como está na imagem. O item do comando é um pouco comprido, como tal poderá ter de deslocar o seu conteúdo um pouco para a direita.</para> + <para +>A configuração é mais ou menos auto-explicativa. Existe um espaço entre o '--preset' e o 'extreme' .</para> + <para +>O '--preset extreme' define a qualidade de áudio dos MP3s. Como foi mencionado anteriormente, esta é uma configuração para uma qualidade de áudio muito boa, o que é suficiente mesmo para os sistemas estéreo HiFi muito bons. A taxa de dados resultante é de cerca de 224 a 256 kbps em média. O factor de compressão obtido é de 6,3 . Um bom compromisso entre a qualidade do áudio e o consumo de espaço. O espaço/memória é barato nos dias de hoje, não é?</para> + <para +>Repare no item '--id3v1-only' que limita a criação de marcas apenas para as marcas V1/V1.1. Apague-o se quiser também as marcas ID3v2. O kid3 é um bom marcador de ID3 para o KDE, no caso de querer manipular as marcas posteriormente. O %f e o %o deverão ser as variáveis internas para o ficheiro de entrada (incluindo o local completo) e o ficheiro de saída (incluindo a sua localização completa).</para> + <para +>Carregue em OK para fechar e aplicar as modificações.</para> + <para +>'Localização do Ficheiro Codificado' - De volta à página de configuração do Codificador, será definida aqui a pasta de destino, incluindo o nome da pasta para os ficheiros do CD extraído. Estas são variáveis que serão preenchidas com os dados do CD correspondentes, sempre que extrair um CD. Os dados do CD poderão ser introduzidos manualmente ou obtidos da Internet (CDDB). Como já foi configurado neste exemplo, será usado o freedb e serão obtidos os dados automaticamente. Brinque com o Assistente, mas no fim deste exemplo, o item deverá ser:</para> + <para +>'/usr/share/cd/%{albumartist} - %{albumtitle} - %{year}/%{number} - %{title}.%{extension}'</para> + <para +>Configure o resto como aparece na imagem. Alguns comentários para uso futuro fora deste exemplo:</para> + <para +>'# ficheiro WAV a codificar de cada vez': Porque é que uma pessoa poderá querer codificar mais que um ficheiro WAV de cada vez? Por exemplo, máquinas multi-processador. Bem, estas virão em breve, por isso, se já tiver uma quando ler isto, tente.</para> + <para +>'Criar um ficheiro de lista de músicas do álbum': Também poderá ser feito. Aparece um assistente, brinca-se com ele, mas qual é a ideia? A maioria dos leitores, se não todos, irá ver os ficheiros por ordem alfabética de qualquer forma. Crie uma lista de músicas com um leitor de áudio, como o XMMS. Depois, poderá alterar a ordem das músicas e alguns dispositivos poderão ver a lista e tocar pela ordem nova, sem ser a alfabética.</para> + <para +>'Prioridade do codificador': para os fanáticos :-), brinque com ela, se sentir necessidade. Quanto maior, mais rápido, pensa o autor!</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para +>É mais ou menos tudo; chegou-se ao fim da configuração básica do KAudioCreator. Esta configuração será usada por omissão em cada extracção do CD. Se tiver escolhido a sua estrutura de organização das músicas correctamente, provavelmente não terá de a alterar de novo. ;-)</para> + +</sect1> + +<sect1 id="Ripping-a-CD"> + <title +>E 2 Extrair um CD</title> + + <para +>Pronto a mexer! Esta secção irá descrever o processo de extrair um CD para o disco rígido. Serão criados ficheiros MP3. A estrutura de pastas, a forma como a música se encontra organizada no disco, foi descrita e configurada na secção anterior. Por isso, ligue-se agora à Internet, dado que somos preguiçosos e queremos obter os dados do CD a partir do 'freedb'! O processo descrito nesta secção terá de ser repetido para cada um dos CDs que quiser extrair.</para> + <para +>Dado que foi usado um CD, que não se encontra listado no freedb, as imagens poderão aparecer um pouco diferentes das existentes para um CD que tenha sido obtido com sucesso do freedb. Como tal, irá aprender a introduzir os dados do CD manualmente, em vez de os obter da Internet, sem bem que serão feitos comentários a descrever as diferenças.</para> + <para +>Não tente procurar o CD que foi usado neste exemplo. É uma edição 'especial' para escritores de manuais. ;-) Infelizmente, nos dias de hoje, nunca se sabe...</para> + <para +>Aqui vamos nós...</para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 2.1 Passo 01: Extrair um CD.</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>A janela principal com um CD de áudio na unidade:</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="cdinserted.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem da janela principal do &kaudiocreator; - CD inserido</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Se não tiver feito nada até agora, introduza o CD na unidade cujo ID de dispositivo tenha indicado aqui nesta janela principal.</para> + <para +>Ao fim de algum tempo, as faixas e a sua duração deverão aparecer na janela, como acontece na imagem. Isto é, se o CD for identificado com um CD de áudio legível pelo cdparanoia.</para> + <para +>Se isso não acontecer, veja a secção de <link linkend="faq" +>Perguntas e Respostas</link +> para obter ajuda ou volte à secção anterior que cobre a configuração básica.</para> + <para +>Atenção: se o CD conseguir ser obtido com sucesso do freedb, todos os títulos das músicas já estarão preenchidos e atribuídos à lista de faixas, com o nome do artista e do álbum visíveis.</para> + <para +>No caso de existir mais que um item na base de dados que corresponda à chave 'única' do seu CD, irá aparecer uma mensagem, onde poderá seleccionar o item da base de dados que julga ser mais adequado para o seu CD.</para> + <para +>Se não tiver assinalado a opção para pesquisar automaticamente no freedb (Configuração - Configurar o KAudioCreator... - CD'), poderá despoletar isso manualmente, com o primeiro botão da barra de botões. Se não tiver uma base de dados local, mas sim a obter da Internet, terá de estar ligado à Internet.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 1.2 Passo 02: O Editor do Álbum - Indique os dados do álbum e o título da primeira música</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Faça duplo-click em qualquer ponto da primeira linha seleccionada (a faixa 1):</action> + </para> + <para +>A janela do Editor do Álbum irá aparecer.</para> + <para> + <screenshot> + <mediaobject> + <imageobject +><imagedata fileref="startalbumeditor.png" format="PNG"/></imageobject> + <textobject +><phrase +>Imagem do Editor de Álbuns do &kaudiocreator;</phrase +></textobject> + </mediaobject> + </screenshot> + </para> + <para +>Indique os dados do álbum do seu CD, de acordo com o padrão da imagem seguinte. O título da música da linha da Faixa 1 esta na área da Faixa Actual, enquanto o resto dos dados do CD estão na área do Álbum.</para> + <para +>Não é necessário introduzir o artista na Faixa Actual, a menos que, obviamente, tenha uma amostra com vários artistas por cada música.</para> + <para +>O campo superior do comentário pode ser usado para atribuir comentários individuais a cada música, enquanto o comentário do álbum poderá ser usado para atribuir comentários que sejam comuns a todas as músicas.</para> + <para +>Atenção: claro que, quando tiver obtido os dados com sucesso do 'freedb', o Editor do Álbum não está em branco, mas contém sim os dados já preenchidos, como acontece na imagem seguinte. Contudo, é sempre uma boa ideia abrir o Editor do Álbum uma vez, para ver se está satisfeito não só com o artista e o nome do álbum (p.ex., se todas as palavras começam por maiúsculas ou não...), mas para ver se existem comentários indesejados.</para> + <para> + <screenshot> + <mediaobject> + <imageobject +><imagedata fileref="entersong1.png" format="PNG"/></imageobject> + <textobject +><phrase +>Imagem do &kaudiocreator; a introduzir o título para a música 1 e os dados do álbum</phrase +></textobject> + </mediaobject> + </screenshot> + </para> + <para +>Nota: Neste exemplo, só estão a ser usadas marcas ID3v1. Isto limita o tamanho dos campos a 30 caracteres para o artista, álbum e nome da música e apenas 28 caracteres para o campo do comentário. Se quiser criar marcas ID3v2, poderá usar um tamanho de campo ilimitado, pelo menos, no que o &kaudiocreator; permitir aqui. Não foi verificado. Poderá definir esta opção na página de configuração do codificador, pelo que poderá dar uma vista de olhos na secção de Configuração Básica para tal.</para> + <para +>Poderá alterar a informação das marcas dos ficheiros criados em qualquer altura com um editor de marcas. O Kid3 é um bom marcador de ficheiros MP3, com os quais poderá criar marcas de ID3v2, também.</para> + <para +>As marcas poderão não ser suportadas por todos os formatos de codificadores/ficheiros. Veja a ajuda do codificador para saber mais informações sobre o assunto.</para> + + <para +>Depois de carregar em OK, aparece uma mensagem de confirmação:</para> + <para> + <screenshot> + <mediaobject> + <imageobject +><imagedata fileref="confirmartistcarryover.png" format="PNG"/></imageobject> + <textobject +><phrase +>Imagem do &kaudiocreator; a confirmar a mudança de dados efectuada</phrase +></textobject> + </mediaobject> + </screenshot> + </para> + <para +>Foram alterados os dados gerais do álbum, pelo que aparece uma mensagem a perguntar se deseja confirmar esta modificações para as outras músicas. Sim, desejamos. Irá poupar algum trabalho. Como tal, carregue em Sim.</para> + <para +>Atenção: esta janela não irá aparecer se você, por exemplo, alterar o nome do álbum no campo do Álbum. Contudo, a mudança será válida também para as outras músicas.</para> + + <para +>E outra janela instantânea:</para> + <para> + <screenshot> + <mediaobject> + <imageobject +><imagedata fileref="setalbumcategory.png" format="PNG"/></imageobject> + <textobject +><phrase +>Imagem do &kaudiocreator; a escolher a categoria do álbum</phrase +></textobject> + </mediaobject> + </screenshot> + </para> + <para +>Foi pedido para escolher uma categoria de música para o álbum. Não confunda isto com o género das marcas ID3. Estas são as 11 categorias predefinidas pelo 'freedb' para ordenar previamente os IDs do CD. Dado que o nosso CD não está em nenhuma base de dados (como poderia, da forma como o programa é usado), terá de ser escolhida uma, para o caso de querermos enviar os dados do CD e estes serem ordenados correctamente na base de dados do freedb.</para> + <para +>Basta escolher um dos itens correspondentes ao estilo do CD que extrair. Não é importante para este exemplo, dado que os dados não serão enviados de qualquer forma. Para mais informações, vá a freedb.org e leia sobre as categorias. O Pop ou o Rap, por exemplo, estão listados sob o Rock.</para> + <para +>Depois de carregar em OK, poderá voltar à janela principal de novo. Basta fazer duplo-click na linha da segunda faixa.</para> + <para +>Mais uma vez, aparece a janela do Editor do Álbum e, como poderá ver, o campo do Álbum já foi preenchido com os dados da primeira faixa. Como tal, basta indicar os campos da Faixa Actual: o título da música, de certeza, e outra informação qualquer que desejar.</para> + <para +>Carregue na próxima linha do ecrã principal e prossiga desta forma até ter introduzido os dados de todas as faixas no CD.</para> + <para +>Atenção: esta mensagem não irá aparecer se tiver obtido os dados do freedb. Já está classificada numa destas categorias na base de dados.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 2.3 Passo 03: Começar a extrair</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Carregue no botão 'Extrair a Selecção', como aparece na imagem</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="readytorip.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem do &kaudiocreator; a iniciar o processo de extracção</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>É o 3o botão da barra de ferramentas. Repare que o artista e o álbum aparecem por cima da lista de faixas.</para> + <para +>Repare também que todas as linhas das faixas estão assinaladas. Só as faixas marcadas desta forma é que serão processadas. Se carregar uma vez na linha da faixa, irá comutar a selecção da faixa. Garanta que todas as faixas estão seleccionadas, ou use o botão 'Seleccionar Todas as Faixas' no fundo do ecrã (não mostrado na imagem) para seleccionar todas as faixas de uma vez.</para> + + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="jobshavestarted.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem do &kaudiocreator; Mensagem de que as tarefas começaram</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Assim que tenha iniciado o processo de extracção, ao carregar no botão para 'Extrair a Selecção', esta janela de confirmação aparecerá. Carregue em OK, para que se possa dar uma vista de olhos na janela de tarefas e perceber o que é que se passa.</para> + + </listitem> + </varlistentry> + </variablelist> + </para> + + <para> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenuitem +>E 2.4 Passo 04: Seguir o progresso na janela de tarefas</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action +>Seleccione a página de 'Tarefas' para mudar para a janela de tarefas. Está na parte superior esquerda do ecrã, logo por baixo da barra de ferramentas com os botões.</action> + </para> + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="jobcontrol.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem do &kaudiocreator; com a janela de controlo de tarefas</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Esta é a janela de controlo de tarefas. A primeira faixa já foi extraída para o disco. O estado do programa é mostrado na parte inferior esquerda, na linha de estado.</para> + + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="encodernotfound.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem do &kaudiocreator; com um erro de ausência do codificador</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Isto é o que irá ver quando tentar codificar ou invocar um codificador que não tenha ainda instalado. As faixas que não foram codificadas com sucesso serão marcadas com um 'x' vermelho na lista de tarefas.</para> + <para +>Já agora, viu como o autor fez batota? O local do ficheiro 'tmp' e o local do destino não é o que foi configurado, aqui no exemplo. Já agora, verificou se tinha acesso tanto à pasta dos ficheiros temporários como à pasta de destino, não viu? ;-)</para> + <para +>Vejamos isso de novo...</para> + + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="rippingandencoding.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem do &kaudiocreator; a Extrair e a codificar</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Hm, agora parece óbvio, porque é que o erro apareceu logo a seguir ao fim da extracção da primeira música.</para> + <para +>Viu isso? A tarefa 1, a extracção da primeira faixa, já terminou, mas existe um item novo: A tarefa 4, que é a codificação da faixa 1 para MP3. Como tal, a extracção e a codificação são feitas em paralelo. Veja a mensagem de estado no fundo da janela, que aparece realçada agora.</para> + <para +>Não foi encontrada nenhuma opção de configuração para suprimir este comportamento. A única coisa que parece ser configurável é o número de extracções e codificações em paralelo. Uau, ainda são permitidas mais tarefas em paralelo? Não sei, o que isto significa em máquinas mais fracas? O AMD64 usado aqui não pareceu ter problemas a extrair e a codificar uma faixa (duas diferentes, de facto) de cada vez.</para> + + <para> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="rippingandencoding2.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Imagem do &kaudiocreator; a Extrair e a Codificar 2</phrase> + </textobject> + </mediaobject> + </screenshot> + </para> + <para +>Bem, o ciclo continua. Agora está a ser extraída a última faixa, enquanto se codifica outra e se tem uma na fila de codificação. Depois de ter sido codificada a última faixa, irá aparecer uma mensagem pequena na parte superior esquerda da janela, durante algum tempo.</para> + <para +>É tudo, está pronto para o próximo CD. Goze a audição da sua 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 e Licença</title> + +<para +>&kaudiocreator; </para> +<para +>Programa com 'copyright' 2004 de Benjamin Meyer <email +>ben+kaudiocreator@meyerhome.net</email +> </para> +<para +>Contribuições: <itemizedlist +> <listitem +><para +>Um espectáculo a solo até agora!<email +>nope@no.mail</email +></para +></listitem> +</itemizedlist> +</para> + +<para +>Documentação com 'copyright' 2005 de alan <email +>sorry@no.mail</email +> </para> +<para +>Como mau exemplo: infelizmente sem e-mail. Não é possível manter este manual. Pretende ser um projecto inicial de manual do kaudiocreator. Quem possa pensar em algo útil a adicionar ou alterar, podê-lo-á fazer. Bem, pelo menos após consultar o autor primeiro. Se tiver lido isto, ele deixou esta secção e, como tal, concorda com esta proposta. </para> + +<para +>Tradução de José Nuno Pires <email +>jncp@netcabo.pt</email +></para +> +&underFDL; &underGPL; </chapter> + +<appendix id="installation"> +<title +>Instalação</title> + +<sect1 id="getting-kaudiocreator"> +<title +>Como obter o &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 usar com sucesso o &kaudiocreator;, irá precisar do &kde; 3.x. e do cdparanoia. Se quiser criar ficheiros de áudio comprimidos, como MP3s ou OGGs, irá necessitar do codificador da sua preferência.</para> + +<para +>O &kaudiocreator; é hoje mantido dentro do CVS do KDE, como parte do pacote 'tdemultimedia'. Se estiver familiarizado com o CVS, poderá fazer uma obtenção anónima a partir daí. Contudo, a maioria das distribuições vêm com um pacote pré-compilado, especialmente porque o &kaudiocreator; faz parte de um pacote principal do KDE. Instale o pacote 'tdemultimedia' da sua distribuição. Se ler isto, já deu com ela provavelmente... </para> + +<!-- For a list of updates, you may refer to the application web site +or the ChangeLog file, or ... --> + +</sect1> + +<sect1 id="compilation"> +<title +>Compilação e Instalação</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 +>Engraçado, se conseguiu extrair o código do CVS do KDE, não irá necessitar desta informação aqui, mas...</para> +&install.compile.documentation; </sect1> + +<sect1 id="configuration"> +<title +>Configuração</title> + +<para +>Bem, esta secção pretende ser mais para as pessoas que compilem o código e não para os utilizadores que tenha um pacote pré-compilado da distribuição.</para> + +<para +>Infelizmente, não existe ajuda disponível para as opções de configuração, antes da compilação do código.</para> + +<para +>Se pretender configurar o programa de acordo com as suas necessidades, uma vez executado, então o seguinte serve para si:</para> + +<para +>Dado que é um programa que pode invocar muitos outros programas, existe bastante para configurar. Leia primeiro o <link linkend="Example" +>exemplo completo</link +> para se introduzir às opções de configuração. Este contém imagens das várias páginas de configuração e oferece comentários, mesmo para as opções não usadas no exemplo.</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-pt/docs/tdemultimedia/kaudiocreator/jobcontrol.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/jobcontrol.png Binary files differnew file mode 100644 index 00000000000..0f93002e264 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/jobcontrol.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/jobshavestarted.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/jobshavestarted.png Binary files differnew file mode 100644 index 00000000000..96ca07f6d87 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/jobshavestarted.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/kaudiocreatormainwindow800.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/kaudiocreatormainwindow800.png Binary files differnew file mode 100644 index 00000000000..28667a068b5 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/kaudiocreatormainwindow800.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/lameconfiguration.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/lameconfiguration.png Binary files differnew file mode 100644 index 00000000000..833b7445d18 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/lameconfiguration.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/readytorip.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/readytorip.png Binary files differnew file mode 100644 index 00000000000..8d31ef9c5c5 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/readytorip.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/ripperconfiguration.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/ripperconfiguration.png Binary files differnew file mode 100644 index 00000000000..63d0775a005 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/ripperconfiguration.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/rippingandencoding.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/rippingandencoding.png Binary files differnew file mode 100644 index 00000000000..c96485e5d3f --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/rippingandencoding.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/rippingandencoding2.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/rippingandencoding2.png Binary files differnew file mode 100644 index 00000000000..c524b20043e --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/rippingandencoding2.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/setalbumcategory.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/setalbumcategory.png Binary files differnew file mode 100644 index 00000000000..994adea0e4d --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/setalbumcategory.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/startalbumeditor.png b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/startalbumeditor.png Binary files differnew file mode 100644 index 00000000000..4dc406f51fd --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kaudiocreator/startalbumeditor.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kcontrol/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/kcontrol/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kcontrol/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/kcontrol/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/kcontrol/Makefile.in new file mode 100644 index 00000000000..e18e4c4d0cf --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kcontrol/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/kcontrol +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 = pt +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. kmixcfg +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/kcontrol/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/kcontrol/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/kcontrol/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kcontrol/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kcontrol/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/kcontrol/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kcontrol/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kcontrol/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-pt/docs/tdemultimedia/kcontrol/kmixcfg/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/kcontrol/kmixcfg/Makefile.am new file mode 100644 index 00000000000..b9332d0891e --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kcontrol/kmixcfg/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = kcontrol/kmixcfg +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/kcontrol/kmixcfg/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/kcontrol/kmixcfg/Makefile.in new file mode 100644 index 00000000000..3fe2dc72543 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kcontrol/kmixcfg/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/kcontrol/kmixcfg +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 = pt +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = kcontrol/kmixcfg +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/kcontrol/kmixcfg/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/kcontrol/kmixcfg/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/kcontrol/kmixcfg/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kcontrol/kmixcfg/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kcontrol/kmixcfg/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)/kcontrol/kmixcfg + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kcontrol/kmixcfg/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kcontrol/kmixcfg/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kcontrol/kmixcfg/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kcontrol/kmixcfg/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kcontrol/kmixcfg/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kcontrol/kmixcfg/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kcontrol/kmixcfg + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kcontrol/kmixcfg + @for base in index.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kcontrol/kmixcfg/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kcontrol/kmixcfg/$$base ;\ + done + +uninstall-nls: + for base in index.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kcontrol/kmixcfg/$$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/kcontrol/kmixcfg/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kcontrol/kmixcfg/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kcontrol/kmixcfg/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-pt/docs/tdemultimedia/kcontrol/kmixcfg/index.cache.bz2 b/tde-i18n-pt/docs/tdemultimedia/kcontrol/kmixcfg/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..89a7b768d26 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kcontrol/kmixcfg/index.cache.bz2 diff --git a/tde-i18n-pt/docs/tdemultimedia/kcontrol/kmixcfg/index.docbook b/tde-i18n-pt/docs/tdemultimedia/kcontrol/kmixcfg/index.docbook new file mode 100644 index 00000000000..17d4baaf1a6 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kcontrol/kmixcfg/index.docbook @@ -0,0 +1,97 @@ +<?xml version="1.0" ?> +<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" +"dtd/kdex.dtd" [ +<!ENTITY % addindex "IGNORE"> +<!ENTITY % Portuguese "INCLUDE" +> <!-- change language only here --> +]> + +<article lang="&language;"> +<articleinfo> + +<authorgroup> +<author +><firstname +>Mike</firstname +> <surname +>McBride</surname +> </author> +<othercredit role="translator" +><firstname +>José</firstname +><surname +>Pires</surname +><affiliation +><address +><email +>jncp@netcabo.pt</email +></address +></affiliation +><contrib +>Tradução</contrib +></othercredit +> +</authorgroup> + +<date +>2002-02-12</date> +<releaseinfo +>3.00.00</releaseinfo> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>KControl</keyword> +<keyword +>mesa de mistura</keyword> +</keywordset> +</articleinfo> + +<sect1 id="mixer"> + +<title +>Mesa de mistura</title> + +<para +>Este módulo pode ser usado para configurar algumas das opções mais básicas do &kmix; (a mesa de mistura do &kde;).</para> + +<para +>A primeira secção diz respeito aos volumes por omissão. Nesta secção podes gravar os níveis de volume actuais como os níveis por omissão. Podes também ler os níveis de volume por omissão (repondo-os assim nos valores predefinidos).</para> + +<para +>Seleccionando o <guilabel +>Carregar os volumes ao ligar</guilabel +> podes indicar ao &kde; para carregar automaticamente os níveis de volume por omissão quando o &kde; arranca.</para> + +<para +>A próxima secção deixa-te especificar qual o 'hardware' que o &kmix; deve procurar.</para> + +<para +>A barra denominada por <guilabel +>Máximo de mesas de mistura detectadas</guilabel +> determina quando o &kmix; deve parar de procurar nas placas de som. Se tiveres uma placa de som no teu computador, deves configurar este valor para um. Se utilizares um valor mais alto, significa que o &kde; irá continuar a procurar por uma segunda placa de som, o que irá atrasar o arranque do &kmix;.</para> + +<para +>A barra chamada <guilabel +>Máximo de dispositivos detectados por mesa de mistura</guilabel +> determina quantos dispositivos o &kmix; tentará procurar em cada placa de som. Se existirem mais dispositivos na tua placa de som do que o &kmix; mostra no início deves aumentar este valor.</para> + +<sect2 id="mixer-author"> +<title +>Autor da Secção</title> + +<para +>Esta secção foi escrita por Mike McBride <email +>mpmcbride7@yahoo.com</email +> </para> +<para +>Tradução de José Nuno Pires <email +>jncp@netcabo.pt</email +></para +> + +</sect2> +</sect1> + +</article>
\ No newline at end of file diff --git a/tde-i18n-pt/docs/tdemultimedia/kio_audiocd/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/kio_audiocd/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kio_audiocd/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/kio_audiocd/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/kio_audiocd/Makefile.in new file mode 100644 index 00000000000..a957f59c673 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kio_audiocd/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/kio_audiocd +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 = pt +#>- 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/kio_audiocd/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdemultimedia/kio_audiocd/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/kio_audiocd/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kio_audiocd/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kio_audiocd/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)/kio_audiocd + @for base in audiocd.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kio_audiocd/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kio_audiocd/$$base ;\ + done + +uninstall-nls: + for base in audiocd.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kio_audiocd/$$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/kio_audiocd/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdemultimedia/kio_audiocd/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdemultimedia/kio_audiocd/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-pt/docs/tdemultimedia/kio_audiocd/audiocd.docbook b/tde-i18n-pt/docs/tdemultimedia/kio_audiocd/audiocd.docbook new file mode 100644 index 00000000000..18266c1becf --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kio_audiocd/audiocd.docbook @@ -0,0 +1,329 @@ +<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 +>José</firstname +><surname +>Pires</surname +><affiliation +><address +><email +>jncp@netcabo.pt</email +></address +></affiliation +><contrib +>Tradução</contrib +></othercredit +> +</authorgroup> + +<date +>2004-09-16</date> +<releaseinfo +>2.30.00</releaseinfo> + +</articleinfo> + +<para +>Permite o tratamento dos <acronym +>CD</acronym +>s áudio como se fosse um sistema de ficheiros <quote +>real</quote +>, em que as faixas são representadas como ficheiros e que, quando copiadas da pasta, são extraídas digitalmente do <acronym +>CD</acronym +>. Isto garante uma cópia perfeita dos dados áudio.</para> + +<para +>Para ver como funciona este 'slave', introduza um <acronym +>CD</acronym +> áudio no seu leitor de &CD-ROM; e escreva <userinput +>audiocd:/</userinput +> no &konqueror;. Numa questão de segundos poderá ver uma lista das faixas, bem como algumas pasta.</para> + +<para +>Os <acronym +>CD</acronym +>s áudio não contêm, na realidade, pastas, mas o 'slave' audiocd disponibiliza-as por conveniência. Se olhar para dentro dessas pastas, verá que todas elas contém o mesmo número de faixas. Se estiver ligado à Internet, algumas pastas terão os títulos verdadeiros das faixas como nomes dos ficheiros.</para> + +<para +>A razão pela qual existem estas pastas separadas tem a ver com a escolha do formato no qual quer ouvir (ou copiar) as faixas do <acronym +>CD</acronym +>.</para> + +<para +>Se arrastar uma faixa da pasta <filename class="directory" +>Ogg Vorbis</filename +> e a largar noutra janela do &konqueror; aberta na sua pasta pessoal, vai aparecer uma janela de progresso para mostrar a faixa a ser extraída do <acronym +>CD</acronym +> e a ser gravada num ficheiro. Não se esqueça que o Ogg Vorbis é um formato comprimido, por isso o ficheiro na sua pasta pessoal aparecerá bastante mais pequeno do que se tivesse copiado os dados em bruto.</para> + +<para +>O mecanismo por trás disto é muito simples. Quando é pedido ao 'slave' audiocd para obter uma faixa da pasta <filename class="directory" +>Ogg Vorbis</filename +>, ele começa a extrair os dados de áudio digital do <acronym +>CD</acronym +>. À medida que envia os dados para o ficheiro na sua pasta pessoal, vai codificando simultaneamente no formato Ogg Vorbis (o áudio do <acronym +>CD</acronym +> não está em nenhum formato especial no início, é apenas dados em bruto).</para> + +<para +>Pode também tentar arrastar um ficheiro que termina em <literal role="extension" +>.wav</literal +> e largá-lo no Reprodutor Multimédia do &kde; Media Player, o &noatun;. Neste caso, o procedimento que ocorre nos bastidores é semelhante, excepto que em vez de codificar os dados áudio no formato Ogg Vorbis, é feita apenas uma conversão simples dos dados binários em bruto (representados pelos ficheiros <literal role="extension" +>.cda</literal +> na pasta de topo) para <quote +>RIFF WAV</quote +>, um formato não comprimido que a maioria dos reprodutores multimédia compreendem.</para> + +<para +>O &noatun; consegue tocar sem problemas um ficheiro <literal role="extension" +>.wav</literal +>, mas se existirem problemas, podes pensar em utilizar a opção <option +>paranoia_level</option +>, como será explicada abaixo.</para> + +<variablelist> +<title +>Opções</title> + +<varlistentry> +<term +><option +>device</option +></term> +<listitem> +<para +>Indica a localização do dispositivo de <acronym +>CD</acronym +> áudio, &pex; <userinput +>audiocd:/<option +>?device</option +>=<parameter +>/dev/sdc</parameter +></userinput +>. Normalmente o 'slave' irá tentar descobrir uma 'drive' de <acronym +>CD</acronym +> que tenha um <acronym +>CD</acronym +> inserido, mas se não o conseguir fazer ou se tiveres mais do que uma 'drive' de <acronym +>CD</acronym +>, podes tentar usar esta opção. Repara que a janela de configuração permite-te definir um valor por omissão para esta opção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>fileNameTemplate</option +></term> +<listitem> +<para +>Define o modelo dos nomes de ficheiros, ⪚ <userinput +>audiocd:/<option +>?fileNameTemplate</option +>=<parameter +>Faixa %{number}</parameter +></userinput +>. Lembre-se que a janela de configuração permite-lhe definir um valor por omissão para esta opção. Irá aparecer um aviso se você configurar este valor com um texto em branco.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>albumNameTemplate</option +></term> +<listitem> +<para +>Configura o modelo do nome dos álbuns, ⪚ <userinput +>audiocd:/<option +>?albumNameTemplate</option +>=<parameter +>%{albumartist} %{albumtitle}</parameter +></userinput +>. Lembre-se que a janela de configuração permite-lhe definir um valor por omissão para esta opção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>niceLevel</option +></term> +<listitem> +<para +>Define o nível de 'nice' (associado à prioridade) dos codificadores, ⪚ <userinput +>audiocd:/<option +>?albumNameTemplate</option +>=<parameter +>niceLevel=10</parameter +></userinput +>. Lembre-se que a janela de configuração permite-lhe definir um valor por omissão para esta opção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>paranoia_level</option +></term> +<listitem> +<para +>Indica o nível de detecção e correcção de erros usado ao extrair os dados.</para> + +<variablelist> +<varlistentry> +<term +>Nível 0</term> +<listitem> +<para +>Não é feita detecção ou correcção. Só é útil se tiveres uma 'drive' de <acronym +>CD</acronym +>s perfeita (pouco provável).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Nível 1</term> +<listitem> +<para +>Permite a detecção e correcção de erros básica.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Nível 2</term> +<listitem> +<para +>Por omissão. Indica que só é aceitável uma extracção perfeita.</para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Repara que existe uma desvantagem com o nível 2. A extracção pode ser muito lenta, por isso a reprodução digital em tempo real pode não funcionar correctamente. Se tiveres uma 'drive' de <acronym +>CD</acronym +>s de boa qualidade (lembra-te que mais caro não significa necessariamente melhor qualidade) provavelmente não terás uma extracção lenta, mas uma 'drive' de fraca qualidade pode levar dias (!) a extrair o áudio de um <acronym +>CD</acronym +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>cddbChoice</option +></term> +<listitem> + +<para +>Indica que os nomes das faixas do <acronym +>CD</acronym +> inserido serão pesquisadas na Base de Dados de <acronym +>CD</acronym +>s da Internet. Os <acronym +>CD</acronym +>s áudio não têm nomes das faixas, mas a Base de Dados de <acronym +>CD</acronym +>s da Internet é um sistema inteligente que utiliza um identificador especial gerado a partir do número e do tamanho das faixas em cada <acronym +>CD</acronym +> para referenciar uma lista de faixas. Essas listas são contribuídas pela comunidade da Internet e são tornadas públicas para todos. Ocasionalmente, poderão existir vários itens iguais. Nesse caso, poderá indicar qual deseja usar.</para> + +<para +>Pode enviar as suas próprias listas de músicas com o &kscd;, o leitor de <acronym +>CD</acronym +>s do &kde;.</para> + +<para +>Por omissão, o 'audiocd' tenta obter a melhor.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title +>Exemplos</title> +<varlistentry> +<term +><userinput +>audiocd:/?device=/dev/scd0&paranoia_level=0&cddbChoice=0</userinput +></term> +<listitem> +<para +>Obtém uma lista das faixas do <acronym +>CD</acronym +> áudio introduzido no dispositivo <filename class="devicefile" +>/dev/scd0</filename +>, que no &Linux; corresponde ao primeiro &CD-ROM; <acronym +>SCSI</acronym +>. Se copiar faixas do <acronym +>CD</acronym +>, a extracção digital será feita sem detecção ou correcção de erros. Será usado o item 0 do <acronym +>CDDB</acronym +>.</para> +</listitem> +</varlistentry> +</variablelist> + +<qandaset> +<title +>Perguntas Frequentes (FAQ)</title> +<qandaentry> +<question> +<para +>Costuma aparecer <errorname +>O ficheiro ou pasta / não existe</errorname +>. Como corrijo isto? Tenho um <acronym +>CD</acronym +> áudio no meu leitor!</para> +</question> + +<answer> +<para +>Tente executar <userinput +><command +>cdparanoia</command +> <option +>-vsQ</option +></userinput +> com o seu próprio utilizador (não como <systemitem class="username" +>root</systemitem +>). Aparece-lhe uma lista de faixas? Se não, verifique se tem permissões para aceder ao dispositivo do <acronym +>CD</acronym +>. Se estiver a utilizar uma emulação de <acronym +>SCSI</acronym +> (possivelmente se tiver um gravador de <acronym +>CD</acronym +>s <acronym +>IDE</acronym +>) então verifique que tem permissões para aceder ao dispositivo <acronym +>SCSI</acronym +> genérico, que é provavelmente o <filename class="devicefile" +>/dev/sg0</filename +>, <filename class="devicefile" +>/dev/sg1</filename +>, &etc;. Se mesmo assim não funcionar, tente executar <userinput +>audiocd:/?device=/dev/sg0</userinput +> (ou similar) para dizer ao kio_audiocd em que dispositivo se encontra o teu &CD-ROM;.</para +> +</answer> +</qandaentry> +</qandaset> + + +</article> diff --git a/tde-i18n-pt/docs/tdemultimedia/kioslave/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/kioslave/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kioslave/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/kioslave/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/kioslave/Makefile.in new file mode 100644 index 00000000000..424074f5c02 --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- 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-pt/docs/tdemultimedia/kioslave/audiocd.docbook b/tde-i18n-pt/docs/tdemultimedia/kioslave/audiocd.docbook new file mode 100644 index 00000000000..9b9c19a5f69 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kioslave/audiocd.docbook @@ -0,0 +1,329 @@ +<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 +>José</firstname +><surname +>Pires</surname +><affiliation +><address +><email +>jncp@netcabo.pt</email +></address +></affiliation +><contrib +>Tradução</contrib +></othercredit +> +</authorgroup> + +<date +>2004-09-16</date> +<releaseinfo +>2.30.00</releaseinfo> + +</articleinfo> + +<para +>Permite o tratamento dos <acronym +>CD</acronym +>s áudio como se fosse um sistema de ficheiros <quote +>real</quote +>, em que as faixas são representadas como ficheiros e que, quando copiadas da pasta, são extraídas digitalmente do <acronym +>CD</acronym +>. Isto garante uma cópia perfeita dos dados de áudio.</para> + +<para +>Para ver como funciona este 'slave', introduza um <acronym +>CD</acronym +> áudio no seu leitor de &CD-ROM; e escreva <userinput +>audiocd:/</userinput +> no &konqueror;. Numa questão de segundos poderá ver uma lista das faixas, bem como algumas pastas.</para> + +<para +>Os <acronym +>CD</acronym +>s áudio não contêm, na realidade, pastas, mas o 'slave' audiocd disponibiliza-as por conveniência. Se olhar para dentro dessas pastas, verá que todas elas contém o mesmo número de faixas. Se estiver ligado à Internet, algumas pastas terão os títulos verdadeiros das faixas como nomes dos ficheiros.</para> + +<para +>A razão pela qual existem estas pastas separadas tem a ver com a escolha do formato no qual quer ouvir (ou copiar) as faixas do <acronym +>CD</acronym +>.</para> + +<para +>Se arrastar uma faixa da pasta <filename class="directory" +>Ogg Vorbis</filename +> e a largar noutra janela do &konqueror; aberta na sua pasta pessoal, vai aparecer uma janela de progresso para mostrar a faixa a ser extraída do <acronym +>CD</acronym +> e a ser gravada num ficheiro. Não se esqueça que o Ogg Vorbis é um formato comprimido, por isso o ficheiro na sua pasta pessoal aparecerá bastante mais pequeno do que se tivesse copiado os dados em bruto.</para> + +<para +>O mecanismo por trás disto é muito simples. Quando é pedido ao 'slave' audiocd para obter uma faixa da pasta <filename class="directory" +>Ogg Vorbis</filename +>, ele começa a extrair os dados de áudio digital do <acronym +>CD</acronym +>. À medida que envia os dados para o ficheiro na sua pasta pessoal, vai codificando simultaneamente no formato Ogg Vorbis (o áudio do <acronym +>CD</acronym +> não está em nenhum formato especial no início, são apenas dados em bruto).</para> + +<para +>Pode também tentar arrastar um ficheiro que termina em <literal role="extension" +>.wav</literal +> e largá-lo no Reprodutor Multimédia do &kde; Media Player, o &noatun;. Neste caso, o procedimento que ocorre nos bastidores é semelhante, excepto que, em vez de codificar os dados áudio no formato Ogg Vorbis, é feita apenas uma conversão simples dos dados binários em bruto (representados pelos ficheiros <literal role="extension" +>.cda</literal +> na pasta de topo) para <quote +>RIFF WAV</quote +>, um formato não comprimido que a maioria dos leitores multimédia compreendem.</para> + +<para +>O &noatun; consegue tocar sem problemas um ficheiro <literal role="extension" +>.wav</literal +> mas, se existirem problemas, poderá pensar em utilizar a opção <option +>paranoia_level</option +>, como será explicada abaixo.</para> + +<variablelist> +<title +>Opções</title> + +<varlistentry> +<term +><option +>device</option +></term> +<listitem> +<para +>Indique a localização do dispositivo de <acronym +>CD</acronym +> áudio, &pex; <userinput +>audiocd:/<option +>?device</option +>=<parameter +>/dev/sdc</parameter +></userinput +>. Normalmente, o 'slave' irá tentar descobrir um leitor de <acronym +>CD</acronym +> que tenha um <acronym +>CD</acronym +> inserido mas, se não o conseguir fazer ou se tiver mais do que uma unidade de <acronym +>CD</acronym +>, poderá tentar usar esta opção. Repare que a janela de configuração permite-lhe definir um valor por omissão para esta opção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>fileNameTemplate</option +></term> +<listitem> +<para +>Define o modelo dos nomes de ficheiros, ⪚ <userinput +>audiocd:/<option +>?fileNameTemplate</option +>=<parameter +>Faixa %{number}</parameter +></userinput +>. Lembre-se que a janela de configuração permite-lhe definir um valor por omissão para esta opção. Irá aparecer um aviso se você configurar este valor com um texto em branco.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>albumNameTemplate</option +></term> +<listitem> +<para +>Configura o modelo do nome dos álbuns, ⪚ <userinput +>audiocd:/<option +>?albumNameTemplate</option +>=<parameter +>%{albumartist} %{albumtitle}</parameter +></userinput +>. Lembre-se que a janela de configuração permite-lhe definir um valor por omissão para esta opção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>niceLevel</option +></term> +<listitem> +<para +>Define o nível de 'nice' (associado à prioridade) dos codificadores, ⪚ <userinput +>audiocd:/<option +>?albumNameTemplate</option +>=<parameter +>niceLevel=10</parameter +></userinput +>. Lembre-se que a janela de configuração permite-lhe definir um valor por omissão para esta opção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>paranoia_level</option +></term> +<listitem> +<para +>Indica o nível de detecção e correcção de erros usado ao extrair os dados.</para> + +<variablelist> +<varlistentry> +<term +>Nível 0</term> +<listitem> +<para +>Não é feita qualquer detecção ou correcção. Só é útil se tiver uma unidade de <acronym +>CD</acronym +>s perfeita (pouco provável).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Nível 1</term> +<listitem> +<para +>Permite a detecção e correcção de erros básica.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Nível 2</term> +<listitem> +<para +>Por omissão. Indica que só é aceitável uma extracção perfeita.</para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Repare que existe uma desvantagem com o nível 2. A extracção pode ser muito lenta, por isso a reprodução digital em tempo real pode não funcionar correctamente. Se você tiver uma unidade de <acronym +>CD</acronym +>s de boa qualidade (lembre-se que mais caro não significa necessariamente melhor qualidade) provavelmente não terá uma extracção lenta, mas uma unidade de fraca qualidade pode levar dias (!) a extrair o áudio de um <acronym +>CD</acronym +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>cddbChoice</option +></term> +<listitem> + +<para +>Indica que os nomes das faixas do <acronym +>CD</acronym +> inserido serão pesquisadas na Base de Dados de <acronym +>CD</acronym +>s da Internet. Os <acronym +>CD</acronym +>s áudio não têm nomes das faixas, mas a Base de Dados de <acronym +>CD</acronym +>s da Internet é um sistema inteligente que utiliza um identificador especial gerado a partir do número e do tamanho das faixas em cada <acronym +>CD</acronym +> para referenciar uma lista de faixas. Essas listas são contribuídas pela comunidade da Internet e são tornadas públicas para todos. Ocasionalmente, poderão existir vários itens iguais. Nesse caso, poderá indicar qual deseja usar.</para> + +<para +>Pode enviar as suas próprias listas de músicas com o &kscd;, o leitor de <acronym +>CD</acronym +>s do &kde;.</para> + +<para +>Por omissão, o 'audiocd' tenta obter a melhor.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title +>Exemplos</title> +<varlistentry> +<term +><userinput +>audiocd:/?device=/dev/scd0&paranoia_level=0&cddbChoice=0</userinput +></term> +<listitem> +<para +>Obtém uma lista das faixas do <acronym +>CD</acronym +> áudio introduzido no dispositivo <filename class="devicefile" +>/dev/scd0</filename +>, que no &Linux; corresponde ao primeiro &CD-ROM; <acronym +>SCSI</acronym +>. Se copiar faixas do <acronym +>CD</acronym +>, a extracção digital será feita sem detecção ou correcção de erros. Será usado o item 0 do <acronym +>CDDB</acronym +>.</para> +</listitem> +</varlistentry> +</variablelist> + +<qandaset> +<title +>Perguntas Frequentes (FAQ)</title> +<qandaentry> +<question> +<para +>Costuma aparecer <errorname +>O ficheiro ou pasta / não existe</errorname +>. Como corrijo isto? Tenho um <acronym +>CD</acronym +> áudio no meu leitor!</para> +</question> + +<answer> +<para +>Tente executar <userinput +><command +>cdparanoia</command +> <option +>-vsQ</option +></userinput +> com o seu próprio utilizador (não como <systemitem class="username" +>root</systemitem +>). Aparece-lhe uma lista de faixas? Se não, verifique se tem permissões para aceder ao dispositivo do <acronym +>CD</acronym +>. Se estiver a utilizar uma emulação de <acronym +>SCSI</acronym +> (possivelmente se tiver um gravador de <acronym +>CD</acronym +>s <acronym +>IDE</acronym +>) então verifique que tem permissões para aceder ao dispositivo <acronym +>SCSI</acronym +> genérico, que é provavelmente o <filename class="devicefile" +>/dev/sg0</filename +>, <filename class="devicefile" +>/dev/sg1</filename +>, &etc;. Se mesmo assim não funcionar, tente executar <userinput +>audiocd:/?device=/dev/sg0</userinput +> (ou algo do género) para dizer ao 'kio_audiocd' em que dispositivo se encontra o seu &CD-ROM;.</para +> +</answer> +</qandaentry> +</qandaset> + + +</article> diff --git a/tde-i18n-pt/docs/tdemultimedia/kmid/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/kmid/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kmid/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/kmid/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/kmid/Makefile.in new file mode 100644 index 00000000000..5ffd9715751 --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- 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-pt/docs/tdemultimedia/kmid/index.cache.bz2 b/tde-i18n-pt/docs/tdemultimedia/kmid/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..f34b9054dd3 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kmid/index.cache.bz2 diff --git a/tde-i18n-pt/docs/tdemultimedia/kmid/index.docbook b/tde-i18n-pt/docs/tdemultimedia/kmid/index.docbook new file mode 100644 index 00000000000..160fb831154 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kmid/index.docbook @@ -0,0 +1,1402 @@ +<?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 % Portuguese "INCLUDE" +> <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>O Manual do &kmid;</title> +<authorgroup> +<author +><firstname +>Antonio</firstname +> <surname +>Larrosa Jiménez</surname +> <affiliation +> <address +><email +>larrosa@kde.org</email +></address> +</affiliation> +</author> +<othercredit role="translator" +><firstname +>Rui</firstname +><surname +>Branco</surname +><affiliation +><address +><email +>freedebian@netcabo.pt</email +></address +></affiliation +><contrib +>Tradução</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 +>O &kmid; é um leitor de multimédia MIDI/karaoke </para> +</abstract> + +<keywordset> +<keyword +>KMid</keyword> +<keyword +>MIDI</keyword> +<keyword +>karaoke</keyword> +<keyword +>multimédia</keyword> +<keyword +>mid</keyword> +<keyword +>kar</keyword> +<keyword +>leitor</keyword> +<keyword +>música</keyword> +<keyword +>som</keyword> +<keyword +>fm</keyword> +<keyword +>awe</keyword> +<keyword +>gus</keyword> +</keywordset> +</bookinfo> + +<chapter id="introduction"> +<title +>Introdução</title> + +<para +>O &kmid; o leitor multimédia de MIDI e Karaoke do &kde;. Ele contém algumas funcionalidades que não são encontradas em mais nenhum leitor de MIDI do &UNIX;, como os gráficos em tempo-real, o realce do texto do Karaoke, entre outros. </para> + +<para +>O &kmid; foi adaptado para correr nos sistemas operativos &Linux; e FreeBSD. Ele usa o controlador de som do <acronym +>OSS</acronym +>, por isso deverá conseguir correr em todos os sistemas em que o &kde; e o <acronym +>OSS</acronym +> compilem. O &kmid; também suporta o Controlador do Projecto Ultrasound do &Linux; que é necessário para obter o som nas placas <acronym +>GUS</acronym +>. Planeia-se o suporte para o controlador do <acronym +>ALSA</acronym +>, assim que suporte um dispositivos de sequenciação MIDI. </para> + +<para +>O &kmid; mostra as letras das músicas no ecrã, mudando a sua cor ao mesmo tempo que a música vai tocando, por isso é muito fácil seguir o ritmo das músicas. </para> + +<para +>Esperemos que ache o &kmid; tão engraçado de usar como foi para o autor desenvolvê-lo. </para> + +<para +>Antonio Larrosa Jiménez <email +>larrosa@kde.org</email +> </para> + +<sect1 id="kmids-features"> +<title +>Funcionalidades do &kmid;</title> + +<para +>Estas são algumas das funcionalidades principais do &kmid;: </para> + +<itemizedlist> +<listitem> +<para +>Tem uma <emphasis +>interface de utilizador muito amigável</emphasis +> para mostrar o texto do Karaoke com <emphasis +>realce em tempo-real</emphasis +> do texto das letras. </para> +</listitem> +<listitem> +<para +>Ele oferece uma visão gráfica sobre o que está a ser tocado em cada canal MIDI, realçando as teclas carregadas nos teclados (virtuais). </para> +</listitem> +<listitem> +<para +>O <emphasis +>Mapeador de MIDI</emphasis +> mais poderoso que você irá alguma vez encontrar em qualquer sistema operativo. </para> +</listitem> +<listitem> +<para +>Suporte para <emphasis +>Drag & drop</emphasis +>, de modo a que você possa largar no &kde; qualquer ficheiro MIDI a partir de uma janela do &konqueror;. </para> +</listitem> +<listitem> +<para +>Você poderá <emphasis +>alterar o tempo</emphasis +> das músicas, para as tocar mais depressa ou mais devagar, de acordo com o seu gosto. </para> +</listitem> +<listitem> +<para +>Mostra algumas luzes para seguir o ritmo da música. </para> +</listitem> +<listitem> +<para +><emphasis +>Tipos de letra personalizados</emphasis +> para mostrar o texto do Karaoke. </para> +</listitem> +<listitem> +<para +>Suporta as duas normas para introduzir as letras nos ficheiros MIDI, isto é, o texto ou os eventos de texto (e adivinha qual é que é usado por uma dada música). </para> +</listitem> +<listitem> +<para +>Gestão de Sessões. Se estiver a ser tocada uma música quando você sair do &kde;, da próxima vez que você se voltar a ligar, a mesma música irá começar a tocar. </para> +</listitem> +<listitem> +<para +><emphasis +>Volume ajustável</emphasis +> em tempo-real. </para> +</listitem> +<listitem> +<para +>Poderá tocar os ficheiros MIDI corrompidos, que noutros leitores os fariam estoirar! </para> +</listitem> +<listitem> +<para +>Ele consegue abrir <emphasis +>ficheiros de MIDI/karaoke comprimidos</emphasis +> tal como qualquer outro ficheiro. </para> +</listitem> +<listitem> +<para +>Consome aproximadamente <emphasis +>0.1%</emphasis +> da carga do <acronym +>CPU</acronym +> do autor (dependendo da complexidade da música). </para> +</listitem> +<listitem> +<para +>Suporta os sintetizadores de &MIDI; externos, as placas <acronym +>AWE</acronym +>, <acronym +>FM</acronym +> e <acronym +>GUS</acronym +> (para a última você irá precisar do controlador <acronym +>LUP</acronym +> e do 'gusd' instalado). </para> +</listitem> +<listitem> +<para +>Funciona no &Linux; e no FreeBSD (talvez também em outros &UNIX;es...). </para> +</listitem> +</itemizedlist> + +</sect1> +</chapter> + +<chapter id="general-usage"> +<title +>Uso geral</title> + +<sect1 id="opening-songs"> +<title +>Abrir músicas</title> + +<para +>Você poderá abrir uma música de várias formas diferentes. </para> + +<para +>Primeiro, você poderá seleccionar o <guimenuitem +>Abrir...</guimenuitem +> do menu <guimenu +>Ficheiro</guimenu +>, onde será apresentada uma janela de ficheiros normal, com a qual você poderá seleccionar a música que deseja abrir. </para> + +<para +>Você poderá arrastar um ficheiro a partir de uma janela do &konqueror; e largá-lo na janela do &kmid;. Você poderá também fazer 'Drag & Drop' de várias músicas ao mesmo tempo. </para> + +<para +>Se você indicar uma música na linha de comandos ao correr o &kmid;, ela também será aberta. </para> + +<para +>Finalmente, poderá seleccionar a música a partir da lista da colecção activa. </para> + +</sect1> + +<sect1 id="playing-songs"> +<title +>Tocar músicas</title> + +<para +>Para tocar uma música, abra-a primeiro e depois carregue no botão <guiicon +>Tocar</guiicon +> da barra de ferramentas, escolha o item <guimenuitem +>Tocar</guimenuitem +> do menu <guimenu +>Música</guimenu +> ou carregue apenas na tecla <keycap +>Espaço</keycap +>. </para> + +<para +>Lembre-se que, ao abrir um ficheiro com 'Drag & Drop', o &kmid; irá começar a tocá-lo automaticamente (se você largar mais do que um ficheiro, eles serão adicionados a uma colecção e serão tocados sequencialmente). </para> + +<para +>Logo que o &kmid; esteja a tocar uma música, você poderá mover a barra temporal, carregando com o &MMB; para ir para uma dada posição. </para> + +<para +>Se uma música estiver a tocar muito depressa ou muito devagar para si, você poderá carregar nos cursores em ambos os lados do <acronym +>LCD</acronym +> do tempo e fazê-la tocar mais depressa ou mais devagar. Para voltar ao tempo predefinido, basta fazer um duplo-click no <acronym +>LCD</acronym +> do tempo. </para> + +<para +>A tecla <keycap +>Espaço</keycap +> é usada para duas coisas; quando a música estiver a tocar e você carregar na tecla <keycap +>Espaço</keycap +>, ela irá actuar como se você tivesse carregado no botão de <guiicon +>pausa</guiicon +> ou no item <guimenuitem +>Pausa</guimenuitem +> do menu <guimenu +>Música</guimenu +>, isto é, irá colocar a música em pausa. Se você carregar na tecla de <keycap +>Espaço</keycap +> quando não estiver a tocar nenhuma música, o &kmid; irá tocá-la. </para> + +</sect1> + +<sect1 id="displaying-lyrics"> +<title +>Mostrar as letras</title> + +<para +>Existem dois métodos de guardar as letras numa música, usando os <guimenuitem +>Eventos de texto</guimenuitem +> ou os <guimenuitem +>Eventos de letras</guimenuitem +>; algumas músicas usam o primeiro, outras o segundo, algumas usam ambos e outras não incluem letras da música :-) </para> + +<para +>O &kmid; permite-lhe escolher os eventos a mostrar e, ainda melhora, tem uma opção para seleccionar automaticamente o tipo de eventos que uma música usa, de modo a que você não tenha de alterar o tipo manualmente. Desta forma, se você activar o item <guimenuitem +>Seleccionador de Texto Automático</guimenuitem +> do menu <guimenu +>Configuração</guimenu +>, o texto do Karaoke será automaticamente seleccionado, mas você poderá à mesma mudar o tipo se preferir outro. </para> + +<para +>Para seleccionar o tipo a usar, você poderá usar os tipos apropriados do menu <guimenu +>Configuração</guimenu +> ou simplesmente carregar nas teclas <keycap +>1</keycap +> e <keycap +>2</keycap +> do seu teclado para ver os <guimenuitem +>Eventos de texto</guimenuitem +> ou os <guimenuitem +>Eventos das letras</guimenuitem +>, respectivamente. </para> + +</sect1> + +</chapter> + +<chapter id="collections"> +<title +>Colecções</title> + +<para +>Uma colecção é uma lista de ficheiros MIDI que você reúne num conjunto e que são tocados um a seguir ao outro. Esta secção ajudá-lo-á a usá-las, dando-lhe também algumas dicas úteis para tirar um bom partido delas. </para> + +<sect1 id="creating-a-collection"> +<title +>Criar uma colecção</title> + +<para +>Para criar uma colecção, primeiro abra a janela do <guilabel +>Gestor de Colecções</guilabel +>, seleccionando o item <guimenuitem +>Organizar ...</guimenuitem +> do menu <guimenu +>Colecções</guimenu +>. Depois, carregue no botão <guibutton +>Nova</guibutton +>, indicando o nome que deseja que a colecção tenha. </para> + +<para +>Você também poderá copiar uma colecção inteira se a seleccionar e carregar no botão <guibutton +>Copiar</guibutton +>, o qual lhe irá pedir o nome da colecção nova, e que terá inicialmente as mesmas músicas que a colecção seleccionada. </para> + +<para +>Assim que tenha mais do que uma colecção, você poderá alterar a colecção activa no <guilabel +>Gestor de Colecções</guilabel +>, seleccionando-a. </para> + +</sect1> +<sect1 id="the-temporary-collection"> +<title +>A Colecção Temporária</title> + +<para +>A Colecção Temporária é uma colecção que é usada para manter as músicas que deseja tocar, mas que não deseja adicionar a nenhuma colecção. </para> + +<para +>Esta colecção <emphasis +>não é gravada</emphasis +> à saída da aplicação, por isso tenha isso em conta se adicionar várias músicas a ela. </para> + +<para +>Continue a ler esta secção para compreender mais sobre a Colecção Temporária. </para> + +</sect1> + +<sect1 id="adding-songs-to-a-collection"> +<title +>Adicionar músicas a uma colecção</title> +<subtitle +>Como usar o <guimenuitem +>Auto-Adicionar à Colecção</guimenuitem +></subtitle> + +<para +>Existem algumas formas diferentes de adicionar uma música a uma colecção. </para> + +<para +>Primeiro que tudo, em cada método, você precisa de ter seleccionado a colecção a que deseja adicionar músicas no <guilabel +>Gestor de Colecções</guilabel +>. Depois, poderá carregar no botão <guibutton +>Adicionar</guibutton +> para adicionar uma dada música música, onde então aparecerá uma janela de abertura de ficheiros para que possa escolher as músicas a adicionar. </para> + +<para +>Os outros métodos para adicionar uma música dependem do estado da opção <guimenuitem +>Auto-Adicionar à Colecção</guimenuitem +>. </para> + +<para +>Se a opção <guimenuitem +>Auto-Adicionar à Colecção</guimenuitem +> estiver activa, ao abrir uma música (usando a opção <menuchoice +><guimenu +>Ficheiro</guimenu +> <guimenuitem +>Abrir...</guimenuitem +></menuchoice +> ou o 'Drag & Drop') esta será adicionada à colecção activa sem a intervenção do utilizador. </para> + +<para +>Se a opção <guimenuitem +>Auto-Adicionar à Colecção</guimenuitem +> não estiver activa, quando abrir uma música, a Colecção Temporária será aberta e limpa, adicionando posteriormente as músicas abertas à mesma. </para> + +</sect1> + +<sect1 id="removing-songs-from-collections"> +<title +>Remover as músicas das colecções</title> + +<para +>Para remover uma música de uma colecção, basta abrir o <guilabel +>Gestor de Colecções</guilabel +>, seleccionar a colecção apropriada, e a música que deseja remover, carregando finalmente no botão <guibutton +>Remover</guibutton +>. </para> + +</sect1> + +<sect1 id="playing-order"> +<title +>Tocar por ordem ou aleatoriamente</title> + +<para +>Você poderá seleccionar a ordem pela qual as músicas serão tocadas. Quando seleccionar <guimenuitem +>Por ordem</guimenuitem +> no sub-menu <guisubmenu +>Ordem de Reprodução</guisubmenu +> do menu <guimenu +>Colecções</guimenu +>, as músicas serão tocadas pela mesma ordem pela qual foram adicionadas à colecção. </para> + +<para +>Quando você seleccionar o modo <guimenuitem +>Baralhar</guimenuitem +>, o &kmid; irá gerar uma variável aleatória com uma distribuição discreta uniforme, para tocar de forma realmente aleatória as músicas da colecção. Ele irá dar valores a essa variável aleatória enquanto gera a lista na ordem em que as músicas serão tocadas (você quer realmente tocar as músicas aleatoriamente, mas não quer tocar duas vezes a mesma música e você quer tocar a última música tocada quando carregar no botão da <guibutton +>Música Anterior</guibutton +>, não quer ? :-) ). </para> + +<para +>A lista aleatória pela qual a colecção será tocada gerar-se-á de novo de cada vez que você adiciona ou remove um ficheiro na colecção activa ou quando carrega no item <guimenuitem +>Baralhar</guimenuitem +> do menu. </para> + +</sect1> + +<sect1 id="selecting-from-a-collection"> +<title +>Seleccionar uma música de uma colecção</title> + +<para +>Você poderá seleccionar uma música para tocar no <literal +>Gestor de Colecções</literal +>, ou usando a lista no texto do Karaoke. </para> + +<para +>Você poderá mudar para a próxima música, usando o item <literal +>Próxima Música</literal +> do menu <literal +>Música</literal +>, o botão <literal +>Próxima Música</literal +> ou carregando na tecla de cursor <literal +>direita</literal +>. </para> + +<para +>Para mudar para a música anterior, use o item <guimenuitem +>Música Anterior</guimenuitem +> do menu <guimenu +>Música</guimenu +>, o item <guimenuitem +>Música Anterior</guimenuitem +> da barra de ferramentas, ou carregue na tecla de cursor <keycap +>esquerda</keycap +> do seu teclado. </para> + +</sect1> + +<sect1 id="deleting-a-collection"> +<title +>Remover uma colecção</title> + +<para +>Para remover uma colecção, basta abrir o <guilabel +>Gestor de Colecções</guilabel +>, seleccionar a colecção que deseja remover e carregar em <guibutton +>Remover</guibutton +>. Fácil, não é? </para> + +<para +>Por favor lembre-se que não pode remover a Colecção Temporária, mas não interessa, dado que não é gravada quando você sai do &kmid;. </para> + +</sect1> + +</chapter> + +<chapter id="midi-maps"> +<title +>Mapas de MIDI</title> + +<sect1 id="what-is-a-midimap"> +<title +>O que é um mapa de MIDI ?</title> + +<para +>Um Mapa de MIDI é algo que mapeia os eventos do MIDI noutros eventos do MIDI. </para> + +<para +>Isto é totalmente necessário se um sintetizador não conseguir compreender os eventos normais (isto é, se um sintetizador não for compatível com o MIDI Geral); neste caso, um mapa de MIDI irá traduzir os eventos do MIDI Geral para os eventos que o sintetizador compreenda. </para> + +<para +>Por exemplo, você poderá fazer um mapa de MIDI que converta todos os eventos de <literal +>Alterar o 'patch' para Piano Puro</literal +> para eventos de <literal +>Alterar o 'patch' para Trompete</literal +>, e assim, quando uma música começar a tocar um piano, irá assim tocar um trompete. </para> + +<para +>Isto poderá soar estranho (porquê tocar um trompete quando a música foi feita para tocar com um piano?), mas é bastante útil. A norma do <acronym +>GM</acronym +> diz que, quando um teclado MIDI recebe um evento para mudar o 'patch' para <literal +>0</literal +>, irá mudar o 'patch' actual para um <literal +>Grande Piano</literal +>, mas os sintetizadores mais antigos irão mudar, por exemplo, para uma <literal +>Guitarra Eléctrica</literal +> quando receber um <literal +>0</literal +>. Este teclado antigo necessita de um <literal +>3</literal +> (por exemplo) para mudar para um <literal +>Piano</literal +>. É aqui que entra em acção o mapa de MIDI, mudando todos os eventos <literal +>alterar 'patch' para 0</literal +> ara <literal +>alterar 'patch' para 3</literal +>, tocando deste modo o instrumento correcto quando tiver de o fazer. </para> + +</sect1> + +<sect1 id="do-i-need-a-midi-map"> +<title +>Será que preciso de um mapa MIDI ?</title> + +<para +>Em resumo, se você não tiver um sintetizador externo, <emphasis +>não</emphasis +>! </para> + +<para +>Se só tiver uma placa de som, os mapas de MIDI não são necessários porque todas as placas são compatíveis com o <acronym +>GM</acronym +> (MIDI Geral) (isto inclui as placas AWE, as <acronym +>GUS</acronym +>, os dispositivos <acronym +>FM</acronym +> e assim por diante). </para> + +<para +>Se você estiver a tocar música através de um sintetizador externo que não sejam compatível com o GM, você terá de fazer um mapa de MIDI para o seu teclado. Ainda que você perca uma tarde inteira a fazer o seu ficheiro de mapa e ande a tentar vários valores diferentes para todas as opções, você será completamente recompensado quando terminar, porque irá encontrar todas as possibilidades escondidas do seu teclado. Por exemplo, o autor tem um Yamaha PSS-790 barato, que não é compatível com o <acronym +>GM</acronym +>, e não tem tantos instrumentos como um sintetizador <acronym +>GM</acronym +>, mas com o mapeador de MIDI do &kmid;, soa ainda melhor que muitas placas de som (incluindo a AWE :-)), devido à qualidade de som encontrada nos sintetizadores externos (mesmo nos incompatíveis com o <acronym +>GM</acronym +>). </para> + +</sect1> + +<sect1 id="creating-a-midi-map"> +<title +>Criar um mapa de MIDI</title> + +<para +>Não existe nenhum programa para gerar mapas MIDI, por isso você terá de editar o ficheiro à mão (com o seu editor de texto favorito). </para> + +<para +>Um mapa MIDI é um ficheiro de texto que contém todas as traduções necessárias que são necessárias fazer para tocar músicas. </para> + +<para +>Consiste em quatro secções: <literal +>PATCHMAP</literal +>, <literal +>KEYMAP</literal +>, <literal +>CHANNELMAP</literal +> e <literal +>OPTIONS</literal +>. </para> + +<para +>Cada secção só deverá aparecer uma vez, excepto a secção <literal +>KEYMAP</literal +> que poderá aparecer tantas vezes quantas as necessárias, desde que cada aparição use um TextID (identificador de texto) diferente (continue a ler para mais detalhes). </para> + +<para +>A estrutura geral de um ficheiro de um mapa é: </para> + +<screen +>DEFINE PATCHMAP +... +END + +DEFINE KEYMAP "Nome do Mapa" +... +END + +DEFINE KEYMAP "Outro Mapa" +... +END + +DEFINE CHANNELMAP +... +END + +OPTIONS +... +END +</screen> + +<para +>Você poderá ver que a palavra <literal +>DEFINE</literal +> é usada para indicar quando é que uma dada secção vai começar (excepto no caso da <literal +>OPTIONS</literal +>), e o <literal +>END</literal +> é colocado no fim de cada secção. </para> + +<para +>Você poderá colocar comentários se começar a linha com um carácter <literal +>#</literal +>. </para> + +<para +>Por favor, não se esqueça de enviar para o autor os seus ficheiros de mapas por e-mail, para que as versões futuras do &kmid; incluam o suporte para mais teclados incompatíveis com o Midi Geral. </para> + +<sect2 id="the-patchmap-section"> +<title +>A secção <literal +>PATCHMAP</literal +></title> + +<para +>Esta secção é usada para indicar como que os 'patches' vão ser mapeados, do GM para a especificação do seu teclado. A utilização geral é: </para> + +<screen +>(Nome do Patch de GM)=(<replaceable +>N</replaceable +>) [AllKeysTo M] +</screen> + +<para +>Em que o <replaceable +>N</replaceable +> é o número que o seu teclado precisa de receber para mudar o 'patch' para o mesmo que a norma do GM usa. </para> + +<para +>Tenha em atenção que o lado esquerdo da igualdade é ignorado, por isso os 'patch'es do <acronym +>GM</acronym +> devem estar supostamente por ordem (de 0 a 127), como tal você não tem permissão para alterar a ordem das linhas nem de omitir qualquer um dos 128 instrumentos. </para> + +<para +>O parâmetro opcional <literal +>AllKeysTo M</literal +> é usado para mapear todas as notas que usam esse instrumento para a tecla <literal +>M</literal +>. Por exemplo, imagine que o seu teclado MIDI não tem o som de Tiro de Arma ('patch' de GM 127), de modo que queira mapeá-lo para um tambor de percussão (i.e., a tecla 60), que é algo que soa de forma semelhante a um tiro, então você poderá colocar na 127a linha da secção <literal +>PATCHMAP</literal +>: </para> + +<screen +>Tiro =100 AllKeysTo 60</screen> + + +<para +>Por isso, quando um ficheiro MIDI tentar tocar uma nota com o 'patch' 127 (tiro de pistola, ele será mapeado para o 'patch' 100 (o 'patch' de percussão do seu teclado) e irá tocar a nota 60 (independentemente da tecla que ia ser tocada). </para> + +<para +>Lembre-se que, quando é usado o termo <quote +>'patch' de percussão</quote +>, quer dizer o 'patch' em que cada cada tecla toca um tambor, prato, bombo, maracas e assim por diante, e não um som possível que alguns teclados têm e que toca um tom diferente da mesma bateria com cada tecla. </para> + +</sect2> + +<sect2 id="The-keymap-section"> +<title +>A secção <literal +>KEYMAP</literal +></title> + +<para +>A secção <literal +>KEYMAP</literal +> é usada para indicar como é que as teclas serão mapeadas, dentro de cada canal ou instrumento. A utilização é a seguinte: </para> + +<screen +>DEFINE KEYMAP "Nome do mapa de teclas" +C 0 =0 +C#0 =1 +D 0 =2 +... +END +</screen> + +<para +>Tal como com a secção <literal +>PATCHMAP</literal +>, é bastante importante a ordem das linhas, e que estejam lá todas (as 128 teclas). </para> + +<para +>Dado que pode definir vários mapas de teclas por cada canal e instrumento, você precisa de dar um nome diferente a cada um na primeira linha. </para> + +<para +>Os mapas de teclas são usados principalmente para mapear as teclas no canal de percussão. Dê uma vista de olhos nos mapas distribuídos para ver alguns exemplos. </para> + +</sect2> + +<sect2 id="the-channelmap-section"> +<title +>A secção <literal +>CHANNELMAP</literal +></title> + +<para +>Esta secção pode ser usada para mapear alguns canais com outros diferentes. Por exemplo, se você quiser trocar o primeiro e o segundo canal, você podê-lo-á fazer facilmente com a secção <literal +>CHANNELMAP</literal +>. </para> + +<para +>Contudo, é mais útil para os teclados que precisem do canal de percussão estarem num canal indicado (a norma do GM usa o canal 10, enquanto que outros usam o 16 ou o 9). </para> + +<para +>Repare que os dispositivos MIDI usam 16 canais, por isso a secção <literal +>CHANNELMAP</literal +> tem 16 linhas, da 0 à 15, como a seguinte: </para> + +<screen +>(N) = (M) [Keymap "Nome"] [ForcePatch x] +</screen> + +<para +>Em que o <literal +>N</literal +> é o canal que está mapeado do canal <literal +>M</literal +>. Se a opção <literal +>Keymap</literal +> for usada, o mapa de teclas com o nome <literal +>Nome</literal +> será usado neste canal (este mapa terá de estar definido anteriormente no ficheiro !). Se a opção <literal +>ForcePatch</literal +> for usada, todos os eventos que tentem alterar o 'patch' que é usado neste canal serão ignorados, e o 'patch' <literal +>x</literal +> será usado em alternativa. </para> + +<para +>A opção <literal +>ForcePatch</literal +> poderá ser útil, por exemplo, para usar sempre o 'patch' de percussão no canal de percussão. </para> + +</sect2> + +<sect2 id="the-options-section"> +<title +>A secção <literal +>OPTIONS</literal +></title> + +<para +>A secção <literal +>OPTIONS</literal +> tem algumas opções gerais que poderão ser bastante úteis: </para> + +<screen +>OPTIONS +PitchBenderRatio = r +MapExpressionToVolumeEvents +END +</screen> + +<para +>Você poderá indicar ambas as opções, somente uma, ou nenhuma delas. </para> + +<para +>O valor do <literal +>PitchBenderRatio r</literal +> tem a proporção pela qual os eventos de ajuste da frequência serão multiplicados. Isto é, quando um ficheiro tentar enviar um evento de ajuste de frequência com um valor <literal +>n</literal +>, o valor real que será enviado é <literal +>n*(r/4096)</literal +> (o valor <literal +>4096</literal +> é para não ter de colocar valores decimais no ficheiro do mapa). </para> + +<para +>Isto é usado porque a norma do <acronym +>GM</acronym +> diz que, quando um teclado MIDI recebe um evento de Ajuste de Frequência com um valor de dados 4096, deverá mudar a nota para uma superior, mas alguns teclados MIDI tentam ajustar a nota inicial por duas ou mais notas mais altas (às vezes, uma oitava mais alta!) quando recebem um 4096 . Isto poderá ser facilmente corrigido se enviar valores diferentes, de modo que, em vez de enviar um 4096, o KMid envie o valor apropriado. </para> + +<para +>Quando a opção <literal +>MapExpressionToVolumeEvents</literal +> estiver definida no ficheiro do mapa e um ficheiro MIDI tente enviar um evento de expressão, o KMid irá enviar um evento de volume que é compreendido pela maioria dos teclados não-GM e que tem um efeito semelhante. Existem muitos ficheiros MIDI que usam eventos de expressão para desvanescer no fim da música, de modo a que oiça a música cada vez mais baixa; você poderá activar esta opção e ver se isto é o que você realmente precisa, porque o seu sintetizador MIDI poderá estar a ignorar os eventos de expressão devido ao facto de não os compreender. </para> + +</sect2> + +</sect1> + +<sect1 id="using-midimaps"> +<title +>Usar os mapas MIDI</title> + +<para +>Para usar um mapa MIDI, basta abrir a janela da <guilabel +>Configuração do MIDI</guilabel +>, seleccionando o item <guimenuitem +>Configuração do MIDI ...</guimenuitem +> no menu <guimenu +>Configuração</guimenu +>. </para> + +<para +>Depois, carregue no botão <guilabel +>Escolher ...</guilabel +>, seleccione o ficheiro do mapa com a janela de abertura de ficheiros e divirta-se com a música ! :-) </para> +</sect1> +</chapter> + +<chapter id="advanced-features"> +<title +>Funcionalidades avançadas</title> + +<sect1 id="the-channel-view"> +<title +>A Janela dos Canais</title> + +<para +>A janela dos Canais é uma janela onde lhe é mostrada uma área de teclados (um por cada canal MIDI). Nestes teclados, as notas que estão a ser tocadas em cada instrumentos ficam iluminadas para que você possa ver o que cada instrumento está a tocar. </para> + +<sect2 id="changing-instruments"> +<title +>Mudar de instrumentos</title> + +<para +>Você poderá usar a janela dos Canais para mudar o instrumento que cada canal está a tocar. Em cada canal existe uma lista onde você poderá escolher o instrumento. Logo que o altere, o botão verde ao lado dele irá mudar para vermelho, indicando que este não é o teclado por omissão. </para> + +<para +>Se você quiser mudar outra vez o instrumento predefinido, carregue no botão vermelho, para que ele seja então alterado. </para> + +</sect2> + +<sect2 id="changing-the-look"> +<title +>Mudar o modo de aparência</title> + +<para +>A Janela dos Canais tem duas formas diferentes (por agora) de mostrar as notas tocadas, e você podê-las-á seleccionar no item <guimenuitem +>Opções da Janela de Canais...</guimenuitem +> do menu <guimenu +>Configuração</guimenu +>. </para> + +<para +>Você poderá optar entre um modo em que as teclas tocadas são pressionadas, como se fosse um piano normal (com <guilabel +>Aparência 3D</guilabel +>), ou um modo em que as teclas são também pintadas de vermelho, de modo que as teclas carregadas sejam facilmente reconhecidas (<guilabel +>3D - preenchido</guilabel +>). Se você tocar piano ou outro instrumento musical, você poderá usar esta janela para aprender a tocar uma música sozinho. Foi usada esta técnica e ela (em conjunto com uma redução de tempo) é óptima para aprender novas composições. </para> + +</sect2> + +</sect1> + +<sect1 id="the-tempo-lcd"> +<title +>O <acronym +>LCD</acronym +> do Tempo</title> + +<para +>Isto mostra o tempo a que é tocada uma música, isto é, a velocidade da música. Quanto maior for este número, mais rapidamente será tocada a música. </para> + +<para +>Você poderá também alterar o tempo da canção, por isso, se uma música tocar demasiado depressa para você seguir as letras, você podê-la-á fazer tocar mais devagar. Para alterar o tempo, você poderá usar os cursores que aparecem de cada lado do <acronym +>LCD</acronym +>. </para> + +<para +>Logo que você tenha alterado o tempo, você poderá voltar ao valor por omissão se fizer duplo-click no <acronym +>LCD</acronym +>. </para> + +</sect1> + +</chapter> + +<chapter id="key-bindings"> +<title +>Teclas</title> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Tecla</entry> +<entry +>Acção</entry> +</row> +</thead> +<tbody> +<row> +<entry +><keycap +>Espaço</keycap +></entry> +<entry +>Toca a música carregada, se não estiver a tocar, ou coloca-a em pausa, se já estiver a tocar.</entry> +</row> +<row> +<entry +><keycap +>Backspace</keycap +></entry> +<entry +>Pára de tocar</entry> +</row> +<row> +<entry +><keycap +>Direita</keycap +></entry> +<entry +>Próxima música na colecção actual</entry> +</row> +<row> +<entry +><keycap +>Esquerda</keycap +></entry> +<entry +>Música anterior na colecção actual</entry> +</row> +<row> +<entry +><keycap +>Cima</keycap +></entry> +<entry +>Sobe uma linha nas letras da música</entry> +</row> +<row> +<entry +><keycap +>Baixo</keycap +></entry> +<entry +>Desce uma linha nas letras da música</entry> +</row> +<row> +<entry +><keycap +>Page Up</keycap +></entry> +<entry +>Sobe uma página nas letras da música</entry> +</row> +<row> +<entry +><keycap +>Page Down</keycap +></entry> +<entry +>Desce uma página nas letras da música</entry> +</row> +<row> +<entry +><keycap +>1</keycap +></entry> +<entry +>Mostra os eventos de texto</entry> +</row> +<row> +<entry +><keycap +>2</keycap +></entry> +<entry +>Mostra os eventos das letras</entry> +</row> +<row> +<entry +><keycombo action="simul" +>&Ctrl;<keycap +>O</keycap +></keycombo +></entry> +<entry +>Abre uma música</entry> +</row> +<row> +<entry +><keycombo action="simul" +>&Ctrl;<keycap +>Q</keycap +></keycombo +></entry> +<entry +>Sai do &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 +>Perguntas Mais Frequentes (FAQ)</title> + +<qandaset> +<qandaentry> +<question> +<para +>O que é exactamente um ficheiro MIDI? </para> +</question> + +<answer> +<para +>Um ficheiro MIDI é um ficheiro que contém a informação sobre como tocar uma música, isto é, contém apenas as notas, o ritmo, a velocidade, &etc;. Isto implica que o mesmo ficheiro MIDI, quando for tocado em dois dispositivos diferentes, possa produzir resultados bastante diferentes, assim como uma sinfonia possa ser tocada de forma diferente por dois músicos diferentes. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Consigo obter melhor som com um leitor de MP3/WAV, porque é que devo usar o &kmid;? </para> +</question> +<answer> +<para +>Bem, não se pode forçar ninguém a usar o &kmid;, mas um ficheiro MIDI típico ocupa 50 Kb. enquanto que um ficheiro MP3 típico ocupa 4 Mb. (e isto é uma taxa de compressão de 1:80 :-) . E, como um bom sintetizador, você poderá obter uma qualidade de som comparável. Mais ainda, com um ficheiro MIDI, você poderá alterar os instrumentos individualmente, a velocidade da música, &etc;, por isso terá um maior controlo global. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Não consigo pôr a minha placa AWE a funcionar com o KMid; o que posso fazer? </para> +</question> +<answer> +<para +>Isto poderá acontecer quando você obter uma distribuição binária (em RPM ou DEB) do &kmid;. Isso acontece porque o &kmid; foi compilado sem o suporte de AWE. Se não funcionar, você terá de obter um pacote com o código-fonte do mesmo (por exemplo da <ulink url="http://www.arrakis.es/~rlarrosa/kmid.html" +>página pessoal do &kmid;</ulink +>) </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Eu quero adicionar uma pasta inteira para uma colecção, mas ter de adicionar os ficheiros MIDI, um a um, não é nada engraçado. </para> +</question> + +<answer> +<para +>O autor concorda com isso, por isso é que o &kmid; suporta o 'Drag & Drop'. Basta abrir, no &konqueror;, a pasta que deseja adicionar, seleccionar todos os ficheiros, arrastá-los e largá-los no &kmid;. </para> +<para +>Certifique-se que activa a opção <guimenuitem +>Auto-Adicionar à Colecção</guimenuitem +> antes, para que os ficheiros sejam adicionados à colecção actual. Se você não fizer isto, os ficheiros serão adicionados à Colecção Temporária. </para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para +>Não consigo seguir as letras; está a tocar demasiado depressa! </para> +</question> +<answer> +<para +>Você poderá carregar na seta esquerda do <acronym +>LCD</acronym +> do tempo para a música tocar mais devagar. Lembre-se que poderá fazer duplo-click no <acronym +>LCD</acronym +> para voltar ao tempo por omissão. </para +> +</answer> +</qandaentry> +</qandaset> + +</chapter> + +<chapter id="final-notes"> +<title +>Notas finais</title> + +<sect1 id="some-tips-and-tricks"> +<title +>Alguns truques e dicas</title> + +<para +>Serão incluídas algumas sugestões para que você possa tirar uma vantagem completa para tirar partido de todas as funcionalidades do &kmid;: </para> + +<variablelist> +<varlistentry> +<term +>Abrir os ficheiros</term> +<listitem> +<para +>Mantenha sempre um ecrã do &kde; com uma janela do &konqueror; aberta na pasta de base dos ficheiros MIDI e o &kmid; neste ecrã (se estiver a tocar um ficheiro MIDI) ou fixo (se estiver a tocar um ficheiro de Karaoke :-)). Desta forma, quando a colecção activa terminar ou se a pessoa quiser tocar algum ficheiro, poderá ir à janela do &konqueror;, seleccionar os ficheiros desejados, arrastá-los e largá-los na janela do &kmid;. </para> + +<para +>Suponha que quer tocar alguns ficheiros MIDI, mas não os quer adicionar a nenhuma colecção; nesse caso, basta desligar a opção <guimenuitem +>Auto-Adicionar à Colecção</guimenuitem +> no menu <guimenu +>Colecções</guimenu +> e abrir os ficheiros, para que eles sejam adicionados à Colecção Temporária. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Outro método para criar uma colecção nova</term> +<listitem> +<para +>Suponha que tem os ficheiros MIDI <filename +>A.mid</filename +>, <filename +>B.mid</filename +> e <filename +>C.mid</filename +>. Em primeiro lugar, só deseja tocar o primeiro ficheiro MIDI, por isso irá deseleccionar a opção <guimenuitem +>Auto-Adicionar</guimenuitem +> e abrir o <filename +>A.mid</filename +>. Você irá obter então uma Colecção Temporária com apenas um ficheiro MIDI. </para> +<para +>Então opta por tocar também o B e o C, fazendo uma colecção com ambos, o que faria? </para> +<para +>Simples; seleccione o <guimenuitem +>Auto-Adicionar</guimenuitem +> e abra os ficheiros <filename +>B.mid</filename +> e <filename +>C.mid</filename +> (usando um dos vários métodos), para que eles sejam adicionados automaticamente à Colecção Temporária, a qual irá então ter o <filename +>A.mid</filename +>, o <filename +>B.mid</filename +> e o <filename +>C.mid</filename +>. A esta altura, você poderá abrir a janela de <guilabel +>Organizar as Colecções</guilabel +>, seleccionar a Colecção Temporária e carregar no botão <literal +>Copiar</literal +>, indicando finalmente o nome da colecção nova. Assim, passa a ter uma colecção nova, que contém os ficheiros MIDI A, B e C, e que não é removida quando você sair do &kmid;. </para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="hall-of-kmids-friends"> +<title +>Painel de amigos do &kmid;</title> + +<para +>Estas são algumas pessoas que enviaram para o autor alguns ficheiros MIDI ou um postal; para todos eles, muito obrigado! Ouvir estas músicas e ler estes postais irão manter o autor cada vez mais a programar no &kmid;. </para> + +<itemizedlist> +<listitem> +<para +>Ola Sigurdson - <literal +>Taking Care of Business</literal +> (Bachman Turner Overdrive)</para> +</listitem> +<listitem> +<para +>EG Lim - Um postal mesmo muito bonito de Penang.</para> +</listitem> +<listitem> +<para +>Guenther Starnberger - <literal +>Amadeus</literal +> (Falco) e <literal +>Schrei Nach Liebe</literal +> (Die Aerzte)</para> +</listitem> +<listitem> +<para +>Leandro Terrés - <literal +>All That She Wants</literal +> e <literal +>The Sign</literal +> (Ace of Base)</para> +</listitem> +<listitem> +<para +>Nick Stoic - Dois ficheiros midi</para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="about-the-author"> +<title +>Acerca do autor</title> + +<para +>O &kmid; tem sido feito pelo Antonio Larrosa Jiménez, em Málaga (Espanha). É um estudante de Matemática na Universidade de Málaga, estando de momento a fazer o terceiro ano, pelo que não tem muito tempo livre para os seus passatempos, embora tente sempre fazer alguns :-). Os seus passatempos incluem : Programar, coleccionar ficheiros MIDI, tocar música e provar teoremas ;-). </para> + +<para +>Se quiser saber onde obter ficheiros de MIDI/Karaoke, se tiver alguma dúvida, um erro para comunicar, uma ideia ou uma funcionalidade que gostasse de ver no &kmid; ou se simplesmente quiser deixar o autor contente, esteja à vontade para enviar um e-mail para: <email +>larrosa@kde.org</email +> ou <email +>antlarr@arrakis.es</email +> </para> + +<para +>ou envie uma carta por correio normal para: </para> + +<literallayout +>Antonio Larrosa Jimenez +Rio Arnoya 10 5B +Málaga (Espanha) +</literallayout> + +<para +>Você irá deixar o autor realmente contente se lhe enviar um postal do sítio onde vive ou um ficheiro de MIDI/Karaoke de um grupo local do seu país. Toda a gente que me enviar um postal ou um ficheiro MIDI irá ter o seu nome no Painel de Amigos do &kmid; (desde que não se oponham a isso). Por favor, contacte o autor antes de enviar os ficheiros MIDI, porque ele já os poderá ter. </para> + +<para +>O autor gostaria ainda de reforçar que o &kmid; foi feito por completo no tempo-livre, sem qualquer apoio monetário de nenhuma companhia ou particulares. Por isso, tenha em mente que, quando o usar, a única coisa que mantém o autor a trabalhar nisto é a obtenção das reacções dos seus utilizadores (um postal ou apenas um e-mail). </para> + +<para +>O autor gostaria também de agradecer às seguintes pessoas pela sua ajuda a desenvolver o &kmid;: </para> + +<itemizedlist> +<listitem> +<para +>Paul J. Leonard <email +>P.J.Leonard@bath.ac.uk</email +> - Suporte para placas AWE </para> +</listitem> +<listitem> +<para +>Sebestyen Zoltan <email +>szoli@digo.inf.elte.hu</email +> - Passagem para o BSD e testes com o AWE </para> +</listitem> +<listitem> +<para +>Christian Esken <email +>esken@kde.org</email +> - Por organizar os esforços multimédia do KDE </para> +</listitem> +<listitem> +<para +>Stephan Kulow <email +>coolo@kde.org</email +>- 'Scripts' do 'configure' e ajuda no <command +>automake</command +> e no <command +>CVS</command +> </para> +</listitem> +<listitem> +<para +>Jaroslav Kysela - Ajuda a fazer o suporte do controlador do &Linux; Ultrasound Project (Projecto Ultrasound do &Linux;) </para> +</listitem> +<listitem> +<para +>Takashi Iwai e Joseph H. Buehler - Correcção da frequência das placas AWE, a qual estava muito alta </para> +</listitem> +<listitem> +<para +>Adrian Knoth - Por me dar boas notícias e várias sugestões </para> +</listitem> +<listitem> +<para +>Kevin Street - Correcção para suportar o FreeBSD 3.0 </para> +</listitem> +<listitem> +<para +>Os agradecimentos vão também para o Jose Luis Sanchez pelo seu teste do suporte de GUS, ao Ignacio Garcia por testar ao suporte do AWE, ao Hans Petter Bieker, Ola Sigurdson, Marc Diefenbruch, Peter Gritsch, Magnus Pfeffer, Urko Lusa, Peter-Paul Witta, Thorsten Westheider, Ulrich Cordes e a toda a gente que enviou para o autor as correcções, relatórios de erros ou apenas mensagem de e-mail a encorajá-lo. </para> +</listitem> +<listitem> +<para +>E, claro, a todos os músicos fabulosos na Net que continuam a fornecer à equipa os vários ficheiros MIDI e Karaoke maravilhosos. </para> +</listitem> +</itemizedlist> + +<para +>Tradução de José Nuno Pires <email +>jncp@netcabo.pt</email +></para +> + +</sect1> + +<sect1 id="copyright-and-license"> +<title +>Créditos e Licença</title> + +<para +>O &kmid; tem o 'copyright' de Antonio Larrosa Jiménez, 1999-2001</para> + +<para +>A documentação tem o 'copyright' de Antonio Larrosa Jiménez 1999, 2001</para> +&underFDL; &underGPL; </sect1> + +</chapter> + +<appendix id="installation"> +<title +>Instalação</title> + +<sect1 id="how-to-obtain-kmid"> +<title +>Como obter o &kmid;</title> +&install.intro.documentation; <para +>Adicionalmente, o &kmid; pode ser encontrado na sua página pessoal, que está em <ulink url="http://www.arrakis.es/~rlarrosa/kmid.html" +> http://www.arrakis.es/~rlarrosa/kmid.html</ulink +>. Na página pessoal, você poderá acompanhar o seu desenvolvimento, ver algumas informações sobre ele, algumas imagens, uma lista dos 'sites' onde você poderá obter mais músicas de Karaoke, &etc; </para> + +</sect1> + +<sect1 id="requirements"> +<title +>Requisitos</title> + +<para +>O &kmid; precisa, para trabalhar, de:</para> + +<itemizedlist> +<listitem> +<para +>&kde;. Bem, você, provavelmente, já terá isto :-) </para> +</listitem> +<listitem> +<para +>Uma placa de som. Uma boa placa de som e/ou sintetizador externo são recomendados, dado que a qualidade do som depende em grande medida da sua placa de som. Não é o mesmo tocar a música com um dispositivo FM ou com uma placa AWE. </para> + +<para +>Se você não tiver uma placa de som, pode à mesma compilar o &kmid; com o <literal +>MODE_DEMO_ONLYVISUAL</literal +> definido para que ele corra como se tivesse uma (mas você não irá obter nenhuma música, obviamente :-( ). </para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="compilation-and-installation"> +<title +>Compilação e Instalação</title> +&install.compile.documentation; <para +>Vêm incluídos alguns exemplos instalados na <filename class="directory" +>$dollar;<envar +>KDEDIR</envar +>/share/apps/kmid</filename +> </para> + +<para +>Se tiver algum problema, não hesite em contactar uma lista de correio do &kde; ou em enviar um relatório directamente para mim. </para> + +</sect1> + +</appendix> + +</book> +<!-- +Local Variables: +mode: sgml +sgml-omittag: nil +sgml-shorttag: t +End: +--> diff --git a/tde-i18n-pt/docs/tdemultimedia/kmix/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/kmix/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kmix/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/kmix/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/kmix/Makefile.in new file mode 100644 index 00000000000..dd26b05eda2 --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- 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-pt/docs/tdemultimedia/kmix/index.cache.bz2 b/tde-i18n-pt/docs/tdemultimedia/kmix/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..d6ddaaa77bc --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kmix/index.cache.bz2 diff --git a/tde-i18n-pt/docs/tdemultimedia/kmix/index.docbook b/tde-i18n-pt/docs/tdemultimedia/kmix/index.docbook new file mode 100644 index 00000000000..e0b0215abc8 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kmix/index.docbook @@ -0,0 +1,817 @@ +<?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 % Portuguese "INCLUDE" +> <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>Manual do &kmix;</title> + +<authorgroup> +<author +><firstname +>Matt</firstname +> <surname +>Johnston</surname +> <affiliation +> <address +><email +>mattj@flashmail.com</email +></address> +</affiliation> +</author> + +<othercredit role="developer" +><firstname +>Christian</firstname +> <surname +>Esken</surname +> <affiliation +><address +><email +>esken@kde.org</email +></address +></affiliation> +<contrib +>Desenvolvimento</contrib> +</othercredit> + +<othercredit role="developer" +><firstname +>Helio</firstname +> <surname +>Chissini de Castro</surname +> <affiliation +><address +><email +>helio@kde.org</email +></address +></affiliation> +<contrib +>Desenvolvimento</contrib> +</othercredit> + + +<othercredit role="developer" +><firstname +>Stefan</firstname +> <surname +>Schimanski</surname +> <affiliation +><address +><email +>1Stein@gmx.de</email +></address +></affiliation> +<contrib +>Desenvolvimento</contrib> +</othercredit> + +<othercredit role="reviewer" +><firstname +>Lauri</firstname +> <surname +>Watts</surname +> <affiliation +><address +><email +>lauri@kde.org</email +></address +></affiliation> +<contrib +>Revisão</contrib> +</othercredit> +<othercredit role="translator" +><firstname +>Rui</firstname +><surname +>Branco</surname +><affiliation +><address +><email +>freedebian@netcabo.pt</email +></address +></affiliation +><contrib +>Tradução</contrib +></othercredit +> +</authorgroup> + +<copyright> +<year +>1996</year +><year +>2005</year> +<holder +>Christian Esken & Matt Johnston</holder> +</copyright> + +<legalnotice +>&FDLNotice;</legalnotice> + +<date +>2005-02-08</date> +<releaseinfo +>2.2</releaseinfo> + +<abstract +><para +>O &kmix; é uma aplicação que permite alterar o volume da sua placa de som.</para +></abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>KMix</keyword> +<keyword +>tdemultimedia</keyword> +<keyword +>som</keyword> +<keyword +>volume</keyword> +<keyword +>mesa de mistura</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title +>Introdução</title> + +<para +>O &kmix; é o programa de mesa de mistura do &kde; para a placa de som .Apesar de pequeno, possuí muitas funções. O programa deverá fornecer controlos para cada uma das suas placas de som.</para> + +<para +>O &kmix; suporta várias plataformas e controladores de som:</para> + +<itemizedlist> +<listitem +><para +>O controlador de som ALSA.</para +></listitem> +<listitem +><para +>Todas as plataformas Open Sound System. Foi explicitamente testado em &Linux; FreeBSD, NetBSD e BSDI.</para +></listitem> +<listitem +><para +>Máquinas baseadas no &Solaris;.</para +></listitem> +<listitem +><para +>Máquinas baseadas no &IRIX;.</para +></listitem> +<listitem +><para +>Máquinas baseadas no &HP-UX;.</para +></listitem> +</itemizedlist> + +<para +>Se tiver tanto os controladores ALSA como os do Open Sound System instalados, o KMix irá usar o controlador ALSA.</para> + +</chapter> + +<chapter id="working-with-kmix"> +<title +>Usar o &kmix;</title> + +<sect1 id="basic-usage"> +<title +>Básico</title> + +<para +>O funcionamento do &kmix; é bastante claro. Todo o dispositivo da mesa de mistura que a placa de som fornece é representado por uma barra de controlo de volume. Os dispositivos mono apenas possuem uma barra, enquanto os dispositivos estéreo podem ter uma ou duas, dependendo da sua escolha. Adicionalmente existe uma barra deslizante no fundo da janela do &kmix;. Se possui várias placas de som, cada uma delas terá a sua página. <screenshot> +<screeninfo +>A Janela Principal do &kmix;</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="kmix-window.png" format="PNG"/></imageobject> +<textobject +><phrase +>A Janela Principal do &kmix;</phrase +></textobject> +</mediaobject> +</screenshot> + +</para> + + +<para +>A janela tem três secções com controlos da placa de som: <simplelist> +<member +>Saída: Esta contém os controlos que estão mais relacionados com a saída ou reprodução de som, como o controlo de volume "Master" (mestre).</member> +<member +>Entrada: Esta contém os controlos mais relacionados com a gravação, como o "Capture" (Captura).</member> +<member +>Opções: Esta contém todas as opções que permitem apenas LIGAR ou DESLIGAR alguma funcionalidade (como o "Mic Boost (+20dB)") e as opções de escolha-múltipla como o "Seleccione o Microfone: Mic1 ou Mic2").</member> +</simplelist> +</para> + +<para +>Para além dos controlos de volume, o KMix também contém LED's. A regra geral das cores é:</para> +<simplelist> +<member +>Verde: Um LED que lida com a reprodução</member> +<member +>Vermelho: Um LED que lida com a gravação</member> +<member +>Amarelo: Um LED que lida com as capacidades especiais da placa de som</member> +</simplelist> +</sect1> + +<sect1 id="volume-sliders"> +<title +>Barras de volume</title> + +<para +>Os controlos de volume na secção "Saída" e "Entrada" consistem em (de cima para baixo): <screenshot> +<screeninfo +>Controlo do Volume (Secção "Entrada")</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="kmix-channel-playback.png" format="PNG"/></imageobject> +<textobject +><phrase +>Controlo do Volume (Secção "Entrada")</phrase +></textobject> +</mediaobject> +</screenshot> + +<simplelist> +<member +>Um ícone que presenta a função da opção.</member> +<member +>Um LED Verde de Mudo, que lhe permite desligar um controlo (A luz apaga-se/fica mais escura) ou voltar a ligá-lo (a luz liga-se/fica brilhante).</member> +<member +>Uma barra para controlo de volume (Sugestão: Você poderá esconder a legenda da barra, por exemplo, se a mesa de mistura ocupar demasiado espaço do seu ecrã).</member> +<member +>Se um controlo suportar a gravação, irá existir um LED vermelho de Gravação. Se o LED estiver aceso (vermelho claro), o controlo está seleccionado para gravação. Se não estiver aceso (vermelho escuro), o controlo NÃO está seleccionado para gravação.</member> +</simplelist> + +<screenshot> +<screeninfo +>Controlo de volume com Opções de Gravação (Secção "Saída")</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="kmix-channel-record.png" format="PNG"/></imageobject> +<textobject +><phrase +>Controlo de volume com Opções de Gravação (Secção "Saída")</phrase +></textobject> +</mediaobject> +</screenshot> + + +</para> + +<para +>Os controlos na secção "Opções" consistem num LED e numa breve descrição da função. Lembre-se, por favor, que os LEDs vermelhos são para gravação, enquanto os LEDs amarelos são para as funcionalidades especiais da placa de som. Se não tiver a certeza do significado de um controlo, peça ao fornecedor do controlador da placa de som (para a maioria das distribuições de Linux actuais este é o ALSA em http://www.alsa-project.org).</para> + +<para +>As barras de volume possuem um menu de contexto, acessível através de um clique no botão direito na barra ou no ícone do dispositivo (no topo). Algumas entradas são possíveis, mas apenas as aplicáveis são mostradas.</para> + +<variablelist> + +<varlistentry> +<term +><guilabel +>Separar os Canais</guilabel +></term> +<listitem +><para +>Mostra uma ou duas barras de volume. Isto aplica-se apenas a dispositivos estéreo. A barra de controlo direita controla o volume do lado direito, e a esquerda controla o volume do lado esquerdo.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Mudo</guilabel +></term> +<listitem +><para +>Desligar e ligar o som do dispositivo</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Esconder</guilabel +></term> +<listitem +><para +>Se não estiver interessado em regular este dispositivo pode esconder esta opção. Se a quiser voltar a mostrar, apenas terá que a seleccionar a opção <guilabel +>Canais</guilabel +> (ver abaixo)</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Configurar os Atalhos</guilabel +></term> +<listitem +><para +>Pode controlar um dispositivo com o teclado. Use esta opção do menu para mostrar o dialogo do &kde; <guilabel +>Configurar teclas de atalho </guilabel +>. Aqui pode definir as teclas para aumentar e diminuir o volume, bem como para tirar o som ao dispositivo. As teclas são globais e funcionam mesmo quando o &kmix; está em ícone ou acoplado.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Canais</guilabel +></term> +<listitem +><para +>Você irá obter uma janela onde poderá configurar, por secção (Saída, Entrada, Opções), que canais deseja ver.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>Mostrar o Menu</guilabel +></term> +<listitem +><para +>Esta opção não é específica a qualquer dispositivo, mas afecta a janela da mesa de mistura. Pode usar esta opção para esconder ou mostrar a barra de menu. Também poderá fazer isto carregando no atalho (normalmente CTRL-m)</para +></listitem> +</varlistentry> + +</variablelist> +</sect1> + +<sect1 id="panning-slider"> +<title +>Barra deslizante</title> + +<para +>Com esta barra pode controlar a distribuição de volume entre a coluna esquerda e a direita. Esta barra é um regulador geral, afectando todos os dispositivos estéreo (os dispositivos mono são ignorados). A posição por omissão é a central. Arrastando a barra para a esquerda passa o volume para a coluna esquerda, e vice-versa para o direito. Obviamente, estes podem ser trocados se as suas colunas não estiverem posicionadas correctamente.</para> +<para +>Para os Sistemas Surround, tenha em atenção que o dispositivo Master (mestre) normalmente regula apenas os altifalantes frontais. Esta é uma limitação da sua placa de sum. Se a sua placa de som tem </para +> +<para +>Se a sua placa de som não tiver um dispositivo Master, algum outro dispositivo poderá ser obtido pelo KMix - para a maioria das pessoas este é o controlo Wave (ou PCM).</para> + +</sect1> + +<sect1 id="configuration-options"> +<title +>Opções de configuração</title> + +<para +>Use o <guilabel +>Menu -> Configuração -> Configurar o KMix...</guilabel +> para escolher as opções. Estes itens são:</para> + +<variablelist> +<varlistentry> +<term +><guilabel +>Acoplar no painel</guilabel +></term> +<listitem +><para +>Se seleccionado, o &kmix; irá ser acoplado quando carregar no botão de fechar janela. Se não estiver seleccionado, o &kmix; será encerrado quando carregar no botão de fecho de janela. Atenção: depois de encerrar não poderá controlar o volume através das teclas escolhidas por si.</para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Activar o controlo de volume no painel</guilabel +></term> +<listitem +><para +>Se estiver activo, ao carregar com o botão esquerdo no ícone da bandeja do KMix, irá mostrar uma janela com um controlo de volume para o dispositivo preferido (Sugestão: de momento você não pode mudar este dispositivo - ele é seleccionado pelo KMix em alternativa). Se a opção estiver desactivada, a janela principal do KMix será mostrada por completo, quando carregar com o botão esquerdo no ícone da bandeja.</para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Mostrar as marcas</guilabel +></term> +<listitem +><para +>Mostrar linhas para marcar posições nas barras.</para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Mostrar o texto</guilabel +></term> +<listitem +><para +>Mostra o nome de cada um dos dispositivos de som. Quer esta função esteja seleccionada ou não, verá esta informação em texto sempre que passar com o rato por cima do ícone de cada dispositivo.</para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Carregar níveis de volume no arranque</guilabel +></term> +<listitem +><para +>Deixa que o KDE reponha os volumes quando você se ligar de novo. Isto repõe os seus níveis de volume pessoais, que são gravados quando você sair. Se o seu Sistema Operativo gravar os níveis de volume, poderá não necessitar desta opção (embora, num computador com vários utilizadores isto seja à mesma necessário).</para +></listitem> +</varlistentry> +</variablelist> + +</sect1> + + +</chapter> + + +<chapter id="working-with-kmixapplet"> +<title +>O 'applet' de painel do &kmix;</title> + +<para +>O painel 'applet' do &kmix; é uma alternativa à interface do &kmix;. Pode adicioná-lo ao painel do KDE através do painel de menu (<guilabel +>Menu do Painel</guilabel +> -> <guilabel +>Adicionar</guilabel +> -> <guilabel +>'Applet'</guilabel +> -> <guilabel +>Mistura de Áudio</guilabel +>). </para> + +<para +>Pode trabalhar com o 'applet' &kmix; conforme descrito em <link linkend="working-with-kmix" +>janela principal</link +> incluindo o menu de contexto. Devido ao espaço limitado do painel, existem algumas diferenças: <simplelist> +<member +>Menu principal não disponível.</member> +<member +>Se tiver várias placas de som, não lhe será possível mudar a selecção da mesa de mistura depois da selecção inicial.</member> +<member +>Sem ícone acoplado. Se quiser usar o ícone acoplado tem que adicionalmente iniciar o &kmix;através do menu K (normalmente em <guilabel +>Menu-K</guilabel +> -> <guilabel +>Multimédia</guilabel +> -> <guilabel +>Mesa de Mistura de Áudio</guilabel +>).</member> +<member +>Os ícones só estão disponíveis quando o painel tem dimensão suficiente.</member> +<member +>Não está disponível o nome do dispositivo.</member> +<member +>A configuração é efectuada através do painel de menu - pode configurar cores e a direcção da barra aqui.</member> +<member +>Sem gravação automática de volume. Se quiser gravar os seus níveis de volume quando sair para serem repostos mais tarde, terá também de iniciar o KMix a partir do menu K.</member> +</simplelist> + +</para> +</chapter> + + +<chapter id="advanced-kmix"> +<title +>Funcionalidades avançadas do KMix</title> + + + +<warning +><para +>Este capítulo descreve uma funcionalidade do &kmix; destinada ao utilizador experiente. A maior parte dos utilizadores nunca necessitará da mesma, pode por isso seguramente saltar este capítulo</para +></warning> + + +<sect1 id="dcop-overview"> +<title +>A Interface DCOP</title> + +<para +>Por vezes pode querer fazer algo especializado. Algo como controlar a mesa de mistura a partir de outra aplicação ou tornar mudo o dispositivo mestre todos os dias às 22 horas. &kmix; tem uma interface DCOP que lhe permite alcançar muito com o mínimo esforço. Pode em modo de consola escrever <guilabel +>dcop kmix</guilabel +> para explorar a interface DCOP do &kmix;. As interfaces específicas do &kmix; são:</para> + +<variablelist> +<varlistentry> +<term +><guilabel +>Mixer0</guilabel +></term> +<listitem +><para +>Permite controlar a primeira mesa de mistura. Pode definir níveis de volume, tornar mudo o dispositivo, alterar o balanço, obter o nome da mesa de mistura e muito mais. Escreva <guilabel +>dcop kmix Mixer0</guilabel +> se quiser explorar todas as funcionalidades. Existem mais entradas como <guilabel +>Mixer1</guilabel +> para o caso ter instaladas várias placas de som.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>kmix-mainwindow#1</guilabel +></term> +<listitem +><para +>O estilo gráfico da janela pode ser controlado com este comando. Pode tornar invisível ou visível a janela, mudar o seu tamanho e muito mais. Escreva <guilabel +>dcop kmix kmix-mainwindow#1</guilabel +> se quiser explorar todas as funcionalidades.</para +></listitem> +</varlistentry> +</variablelist> + +</sect1> + + + + + +<sect1 id="dcop-examples"> +<title +>Exemplos do DCOP</title> + +<variablelist> +<varlistentry> +<term +><guilabel +>dcop kmix kmix-mainwindow#1 hide</guilabel +></term> +<listitem +><para +>Esconde a janela gráfica. Escreva <guilabel +>dcop kmix kmix-mainwindow#1 show</guilabel +> ou clique no ícone acoplado para a mostrar novamente.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>dcop kmix kmix-mainwindow#1 resize 1 1</guilabel +></term> +<listitem +><para +>Diminui o tamanho da janela para a menor dimensão possível. Esta é a dimensão que permite que todas as barras (e outros elementos gráficos) se enquadrem na janela.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>dcop kmix Mixer0 mixerName</guilabel +></term> +<listitem +><para +>Retorna o nome da primeira mesa de mistura, por exemplo <guilabel +>Sound Fusion CS46xx</guilabel +></para +></listitem> +</varlistentry> + +<varlistentry> +<term +><guilabel +>dcop kmix Mixer1 setVolume 0 10</guilabel +></term> +<listitem +><para +>Define o nível de volume da segunda mesa de mistura, dispositivo em percentagem de 0 a 10. Dispositivo 0 normalmente o dispositivo mestre, embora nem sempre. Se quiser desactivar o (primeiro) dispositivo principal da segunda placa de som , pode usar <guilabel +>dcop kmix Mixer1 setMasterVolume 0</guilabel +></para +></listitem> +</varlistentry> +</variablelist> + +<para +>Pode executar estes comandos directamente através de uma consola no KDE. Se precisar de executar comandos dcop de outro local, por exemplo a partir de um script de 'crontab', tem que definir a variável de ambiente <guilabel +>DCOPSERVER</guilabel +> (como na primeira linha do seu ~/.DCOPservidor_nome da máquina_:0 file), por exemplo: </para> + <!-- Don't know a better way to format code - esken --> +<simplelist> +<member +>#!/bin/sh</member> +<member +>DCOPSERVER=`cat /home/areapessoal/.DCOPservidor_nome da máquina_:0 | grep local`</member> +<member +>export DCOPSERVER</member> +<member +>dcop kmix Mixer0 setMasterVolume 0</member> +</simplelist> + +</sect1> + +<sect1 id="tips-and-tricks"> +<title +>Truques e dicas</title> + +<variablelist> +<varlistentry> +<term +><guilabel +>Usar os controladores ALSA e OSS ao mesmo tempo +></guilabel +></term> +<listitem> +<para +>O KMix no Linux pode usar quer o controlador ALSA quer o controlador OSS. Se necessitar de utilizar os dois controladores ao mesmo (situação rara), pode fazer o seguinte: Sair do KMix e adicionar a seguinte linha no seu ficheiro <guilabel +>kmixrc</guilabel +> na secção de configuração global.</para> +<para +><guilabel +>MultiDriver=true</guilabel +></para> +<para +>Inicie novamente o KMix. Se clicar em <guilabel +>Ajuda->Informação de Hardware</guilabel +> deverá ver "<guilabel +>controladores de Som utilizados: ALSA0.9 + OSS</guilabel +>" e "<guilabel +>modo experimental de controlador-múltiplo activado</guilabel +>"</para> +<warning +><para +>Aviso: Provavelmente irá ver todas as mesas de mistura em duplicado.</para +><para +>Não existe suporte para esta configuração.</para +></warning> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +</chapter> + +<chapter id="credits"> +<title +>Créditos e Licença</title> + +<para +>Programadores principais</para> + +<itemizedlist> +<listitem +><para +>Copyright 1996-2000 Christian Esken</para +></listitem> +<listitem +><para +>Copyright 2000-2003 Christian Esken & Stefan Schimanski</para +></listitem> +<listitem +><para +>Copyright 2003-2005 Christian Esken & Helio Chissini de Castro</para +></listitem> +</itemizedlist> + +<para +>Contribuições:</para> + +<itemizedlist> +<listitem +><para +>Christian Esken <email +>esken@kde.org</email +></para +></listitem> +<listitem +><para +>Stefan Schimanski <email +>1Stein@gmx.de</email +></para +></listitem> +<listitem +><para +>Paul Kendall <email +>paul@orion.co.nz</email +> - Porte para SGI</para +></listitem> +<listitem +><para +>Sebestyen Zoltan <email +>szoli@digo.inf.elte.hu</email +> - Correcções para FreeBSD</para +></listitem> +<listitem +><para +>Faraut Jean-Louis <email +>jlf@essi.fr</email +> - Correcções para Solaris</para +></listitem> +<listitem +><para +>Nick Lopez <email +>kimo_sabe@usa.net</email +> - Porte para ALSA</para +></listitem> +<listitem +><para +>Helge Deller <email +>deller@gmx.de</email +> - Porte para HP-UX</para +></listitem> +<listitem +><para +>Lennart Augustsson <email +>augustss@cs.chalmers.se</email +> - *BSD Fixes</para +></listitem> +</itemizedlist> + +<para +>Documentação copyright 2000 Matt Johnston <email +>mattj@flashmail.com</email +></para> + +<para +>Actualizado em 2003 para corresponder ao &kmix; V1.91 por Christian Esken <email +>esken@kde.org</email +></para> + +<para +>Actualizado em 2005 para corresponder ao &kmix; V2.2 por Christian Esken <email +>esken@kde.org</email +></para> + + +<para +>Baseado na documentação de Christian Esken <email +>esken@kde.org</email +></para> +<para +>Tradução de Rui Branco <email +>freedebian@netcabo.pt</email +></para +> +&underFDL; &underGPL; </chapter> + +<appendix id="installation"> +<title +>Instalação</title> + +<sect1 id="getting-kmix"> +<title +>Como obter o &kmix;</title> +&install.intro.documentation; </sect1> + +<sect1 id="requirements"> +<title +>Requisitos</title> + +<para +>Obviamente, o &kmix; só é útil se você tiver uma placa de som. O &kmix; suporta várias plataformas e controladores de som:</para> + +<itemizedlist> +<listitem +><para +>Todas as plataformas Open Sound System. Foi explicitamente testado em &Linux; FreeBSD, NetBSD e BSDI.</para +></listitem> +<listitem +><para +>Máquinas baseadas no &Solaris;.</para +></listitem> +<listitem +><para +>Máquinas baseadas no &IRIX;.</para +></listitem> +<listitem +><para +>O controlador de som ALSA.</para +></listitem> +<listitem +><para +>Máquinas baseadas no &HP-UX;.</para +></listitem> +</itemizedlist> + +</sect1> + +<sect1 id="compilation"> +<title +>Compilação e Instalação</title> +&install.compile.documentation; </sect1> + +</appendix> + +</book> +<!-- +Local Variables: +mode: sgml +sgml-omittag: nil +sgml-shorttag: t +End: +--> + diff --git a/tde-i18n-pt/docs/tdemultimedia/kmix/kmix-channel-playback.png b/tde-i18n-pt/docs/tdemultimedia/kmix/kmix-channel-playback.png Binary files differnew file mode 100644 index 00000000000..40a84d9bacb --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kmix/kmix-channel-playback.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kmix/kmix-channel-record.png b/tde-i18n-pt/docs/tdemultimedia/kmix/kmix-channel-record.png Binary files differnew file mode 100644 index 00000000000..d5f5d186a25 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kmix/kmix-channel-record.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kmix/kmix-window.png b/tde-i18n-pt/docs/tdemultimedia/kmix/kmix-window.png Binary files differnew file mode 100644 index 00000000000..02d4a05c687 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kmix/kmix-window.png diff --git a/tde-i18n-pt/docs/tdemultimedia/krec/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/krec/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/krec/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/krec/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/krec/Makefile.in new file mode 100644 index 00000000000..e799b9b0a60 --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- 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=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)/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 index.docbook ; 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 index.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/krec/$$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/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-pt/docs/tdemultimedia/krec/index.cache.bz2 b/tde-i18n-pt/docs/tdemultimedia/krec/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..6beb4eb83b6 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/krec/index.cache.bz2 diff --git a/tde-i18n-pt/docs/tdemultimedia/krec/index.docbook b/tde-i18n-pt/docs/tdemultimedia/krec/index.docbook new file mode 100644 index 00000000000..d1c496e652c --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/krec/index.docbook @@ -0,0 +1,649 @@ +<?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 % Portuguese "INCLUDE"> +]> + +<book lang="&language;"> +<bookinfo> +<title +>Manual do &krec;</title> + +<authorgroup> +<author +><firstname +>Arnold</firstname +> <surname +>Krille</surname +> <affiliation +> <address +><email +>arnold@arnoldarts.de</email +></address> +</affiliation> +</author> +</authorgroup> + +<othercredit role="translator" +><firstname +>Rui</firstname +><surname +>Branco</surname +><affiliation +><address +><email +>freedebian@netcabo.pt</email +></address +></affiliation +><contrib +>Tradução</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 +>O &krec; é uma aplicação de gravação para o &arts;. Pode ser usado para gravar qualquer som vindo ou enviado através do computador. Alguns efeitos dinâmicos estão implementados tal como a possibilidade de tocar o que estiver a gravar. </para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>tdemultimedia</keyword> +<keyword +>KRec</keyword> +<keyword +>aRts</keyword> +<keyword +>gravar</keyword> +<keyword +>interface</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 +>Introdução</title> + +<sect1 id="why-krec"> +<title +>Porque escrevi o &krec;</title> + +<para +>Depois de trabalhar um pouco com o &arts;, cheguei à conclusão que o mesmo não possuía uma aplicação de gravação exceptuando a ferramenta de linha de comando <command +>artsrec</command +>. Tive que gravar um programa de rádio para uns colegas meus, misturar e criar um 'master' e queria usar o &Linux; para a gravação. Comecei então a escrever o &krec;. </para> +</sect1> + +<sect1 id="what-krec-does"> +<title +>O que faz o &krec;</title> + +<para +>A finalidade do &krec; é bastante simples. Liga-se ao servidor &arts; e grava o que para ele é redireccionado para ficheiros. Estes ficheiros estão num formato especial do &krec; mas é possível exportá-los para ficheiros wave, ogg e mp3. </para> +<para +>O &krec; tem no entanto muito mais funcionalidades. Você pode efectuar gravações múltiplas num ficheiro até com funcionalidades de sobreposição. </para> +</sect1> + +<sect1 id="bugs_and_info"> +<title +>Informação adicional</title> +&reporting.bugs; &updating.documentation; </sect1> + +</chapter> + +<chapter id="first_glance"> +<title +>Uma primeira vista de olhos no &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 +>Eis uma imagem do &krec;</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="krec-keramik.png" format="PNG"/> +</imageobject> +<textobject> +<phrase +>Eis uma imagem do &krec; imediatamente depois de ter sido iniciado.</phrase> +</textobject> +</mediaobject> +</screenshot> + +<sect1 id="first_glance_items"> +<title +>Detalhe da janela principal do &krec;</title> + +<itemizedlist> +<listitem +><para +>No topo encontramos a <emphasis +>barra de menu</emphasis +> e duas <emphasis +>caixas de ferramentas</emphasis +>. A primeira contem items úteis do menu <guimenu +>Ficheiros</guimenu +>, a segunda barra de ferramentas traz funções importantes do menu <guimenu +>Tocar</guimenu +>.</para +></listitem> +<listitem +><para +>A parte central possuí partes importantes: na parte esquerda encontra-se o medidor 'VU-Meter' dando informação do volume do sinal áudio de momento tocado/gravado combinado com um controle de volume para ajustar o nível.</para +></listitem> +<listitem +><para +>A zona central mostra o ficheiro e consiste em quatro partes. A primeiro no topo onde se encontra o nome do ficheiro, a segunda evidencia as partes gravadas por ordem cronológica e por duração. É-lhe permitido desactivar ou apagar partes pela via do menu de contexto. Abaixo está a linha de tempo onde poderá verificar a posição actual e (clicando) mover para a posição pretendida. A parte inferior a este bloco contém dois quadros que informam sobre a posição e a duração no formato de tempo que queira.</para +></listitem> +<listitem +><para +>Na zona inferior existe outra barra de ferramentas contendo um compressor para editar a sua gravação e uma barra de estado mostrando todo o tipo de mensagens.</para +></listitem> +</itemizedlist> + +<para +>Veja <xref linkend="krec_explained"/> para mais informações. </para> + +</sect1> +</chapter> + +<chapter id="recording_howtos"> +<title +>Como gravar</title> + +<para +>Este capítulo contém alguns tutoriais passo a passo que lhe mostram o modo de obter boas gravações com o &krec;. </para> + +<sect1 id="recording_from_music"> +<title +>Gravação a partir de fonte de música interna</title> + +<orderedlist> +<listitem +><para +>A primeira coisa a fazer é uma gravação a partir do seu leitor de áudio favorito do &kde;. Assim inicie o &noatun;, o &juk; ou o &kaboodle;. Poderíamos utilizar outros leitores mas teriam que usar o &arts; como saída, de outro modo a gravação seria um pouco mais complexa e para além do objectivo desta secção. Por isso salte detrás da sua sombra e seleccione uma música para tocar num dos três leitores (todos estes são distribuídos com o tdemultimedia quando obteve o &krec;). </para +></listitem> +<listitem +><para +>No &krec; seleccione o <guimenuitem +>Gestor de Áudio</guimenuitem +> a partir do menu <guimenu +>Ferramentas</guimenu +>. Verá então pelo menos uma linha para o &krec;::In e uma linha para o &krec;::Out. A segunda coluna informa sobre o tipo do item, ou <emphasis +>tocar</emphasis +> ou <emphasis +>gravar</emphasis +>. A última coluna informa sobre a origem e destino do som deste item. Actualmente o &krec;::In é (deverá ser?) ligado à <emphasis +>entrada_placa de som</emphasis +> que é o canal de entrada da placa de som mas como queremos gravar a partir do leitor e o leitor reproduz através da <emphasis +>saída_placa de som</emphasis +>, iremos carregar no item &krec;::In para mudar para outra fonte. Seleccione <emphasis +>saída_placa de som</emphasis +> da janela que aparecerá e clique <guibutton +>Ok</guibutton +>. Para aprender mais sobre o gestor de áudio veja <xref linkend="audio_manager"/>. </para +></listitem> +<listitem +><para +>Agora o medidor 'VU-Meter' no &krec; este deverá subir ou descer de modo correspondente á música que estiver a ouvir (se não ouvir qualquer som não deverá então ver qualquer coisa no VU). </para +></listitem> +<listitem +><para +>Agora abra um novo ficheiro quer clicando no primeiro item da barra de ferramentas ou seleccionando <guimenuitem +>Novo</guimenuitem +> a partir do menu <guimenu +>Ficheiros</guimenu +>. Aceite as opções sobre a qualidade por agora ou veja <xref linkend="quality"/> para mais informação. </para +></listitem> +<listitem +><para +>Seleccione <guimenuitem +>Gravação</guimenuitem +> a partir do menu <guimenu +>Tocar</guimenu +> ou carregando na tecla <keycap +>R</keycap +>.Depois de ter acabado seleccione <guimenuitem +>Parar</guimenuitem +> a partir do mesmo menu ou use a tecla <keycap +>S</keycap +>. </para +></listitem> +<listitem +><para +>Gravar o trabalho pelo método standard, se estiver interessado em exportar veja <xref linkend="exporting"/>.</para +></listitem> +</orderedlist> + +<para +>E é tudo! Agora pode ouvir a sua gravação ou exportá-la (não se esqueça de retroceder ao início). </para> + +</sect1> + +<sect1 id="recording_from_line_in"> +<title +>Gravar a partir de 'Line-In' ou 'Mic-In'</title> + +<para +>Gravar de fontes externas é um pouco mais complicado envolvendo uma variedade de aplicações e dispositivos de hardware. Assumo que o seu hardware está correctamente instalado, os controladores a funcionar como devem e você consegue controlar o volume do hardware através do &kmix;. No &kmix; poderá também seleccionar os canais para gravação o que basicamente significa que os seus sinais são enviados pelo conversor analógico-digital (abreviado ADC) e que possa ser lido pelo controlador e aplicações. Este processo funciona de modo diferente em maior parte das placas de som e controladores por isso terá que praticar um pouco antes que tenha a certeza... </para> +<para +>A segunda coisa mais importante é que o &arts; tem que correr em modo 'full-duplex'. Significa isto que o &arts; lê a partir da placa de som e escreve para a mesma ao mesmo tempo. Terá que iniciar o &kcontrol; e editar configurações do sistema de som (ou prima Alt+F2 e entre com <command +>kcmshell arts</command +>). Na segunda página do separador terá que se certificar se caixa de opção do 'full-duplex' está seleccionada, clicando <guibutton +>Aplicar</guibutton +> reiniciará o &arts; o que significa que terá que reiniciar o &krec; também. </para> +<para +>Depois destes procedimentos o medidor 'VU-Meter' (veja <xref linkend="vu-meter"/> para mais informações) do &krec; deverá mover-se de acordo com o sinal áudio que queira gravar e que tenha seleccionado para gravação no &kmix;. Ajustando o volume para valores certos é muito importante para gravações correctas. Se a amplificação vinda da placa de som é muito alta poderá obter falhas digitais porque o <glossterm +>ADC</glossterm +> só pode criar valores entre um mínimo e um máximo e o sinal está muito alto para poder ser cortado digitalmente que arruinará a gravação. Por outro lado se o volume estiver demasiado silencioso obterá um ruído e um silvo a partir do hardware áudio que será incluído na sua gravação. Logo terá que escolher um ponto médio tal que o sinal não esteja demasiado alto e seja cortado mas também não demasiado baixo de modo a que seja perdido no ruído do hardware. </para> +<para +>Agora pode ajustar o nível uma segunda vez no &krec; passando agora por uma amplificação por software. Aqui é melhor utilizar o compressor para equalizar as diferenças entre o silêncio e partes com volume demasiado alto. Mas informação sobre o compressor pode ser encontrada em <xref linkend="compressor"/>. </para> +<para +>Os passos restantes são os mesmos de <xref linkend="recording_from_music"/> do passo quatro e seguintes. Por isso se começou nessa secção já o deverá saber. </para> + +</sect1> +</chapter> + +<chapter id="krec_explained"> +<title +>O &krec; explicado</title> + +<para +>Este capítulo descreve algumas partes e funções do &krec; em detalhe e fornece algumas dicas sobre o seu uso. Os items estão dispostos por ordem alfabética, e não por ordem de importância. </para> + +<sect1 id="audio_manager"> +<title +>O gestor áudio</title> +<para +>O gestor áudio é utilizado para conectar as saídas de diferentes aplicações para ligações novas ou existentes. Uma ligação ('bus') é um tipo de distribuidor virtual de sinal. Toda a reprodução ou gravação pode ser ligada exactamente a uma ligação mas múltiplos items deverão ser ligados a uma ligação. Exemplo: a saída do &noatun; pode ser ligada à saída principal ('main out') <emphasis +>ou</emphasis +> a qualquer outra ligação. Mas múltiplos &noatun;s podem ser todos ligados á saída principal. </para> + +<sect2 id="audio_manager_mw"> +<title +>A janela principal do gestor de áudio</title> +<para +>Contém três colunas: </para> +<orderedlist> +<listitem +><para +>O nome do item que está a tocar ou a ser gravado.</para +></listitem> +<listitem +><para +>O tipo do item quer seja <emphasis +>tocar</emphasis +> or <emphasis +>gravar</emphasis +>.</para +></listitem> +<listitem +><para +>A ligação á qual o item está ligado.</para +></listitem> +</orderedlist> +<para +>Clique num item ou num diálogo para escolher os avisos que aparecem. </para> +</sect2> +<sect2 id="audio_manager_dialog"> +<title +>O diálogo de ligações</title> +<para +>A parte central mostra todas as ligações existentes. Seleccione uma para enviar áudio ou receber através dela. Por baixo pode criar novas ligações para conectar ao item. </para> +<tip +><para +>Para gravar a partir de um leitor compatível com &arts; e ouvir aquilo que está actualmente a gravar crie uma nova ligação (<emphasis +>teste</emphasis +> por exemplo), ligue o leitor a ela (não irá ouvir nada nesta altura), ligue a &krec;::Entrada á nova ligação e active a função<guimenuitem +>Avançar</guimenuitem +>. </para +></tip> +</sect2> + +</sect1> + +<sect1 id="compressor"> +<title +>O compressor</title> +<para +>Se estiver a gravar com um microfone poderá notar que o nível está por vezes quase cortado e por vezes muito baixo especialmente quando se canta ou se grava voz. Para corrigir este problema pode usar o compressor. Este simplesmente reduz todos os sons que ultrapassam um dado <emphasis +>nível</emphasis +>, determinado por uma valor fornecido em <emphasis +>taxa</emphasis +>. Note que o nível é logarítmico, um valor médio é ainda relativamente baixo, mas muito usual deste modo. Outra nota: a taxa encontra-se no seu valor máximo quando se encontra no seu lado esquerdo, o extremo direito significa sem compressão. Enquanto este método reduz o ruído existe um potenciómetro de saída que aumenta (ou reduz) o som. O <emphasis +>attack</emphasis +> e <emphasis +>release</emphasis +>permite-lhe controlar o tempo após o qual o compressor reage (o tempo que decorrerá após o sinal de entrada exceder o nível) e o tempo para o qual o compressor ainda actuará depois do som ficar abaixo do mesmo nível. </para> +<tip +><para +>Teste-o enquanto fala para o microfone com a opção <quote +>Avançar</quote +> activa e irá notar a diferença entre uma versão integral e uma comprimida.</para +></tip> +<sect2 id="compressor_tips"> +<title +>Dicas sobre a utilização do compressor</title> +<para +>Isto são <emphasis +>apenas</emphasis +> dicas. No final a única coisa que conta é como vai soar. Por isso se soar como você quer, provavelmente tem a configuração correcta. Não hesite em fazer experiências. </para> +<glosslist> +<glossentry +><glossterm +>Voz normal</glossterm +><glossdef +><para +>A maior parte das vezes o som de voz na radio ou televisão está muito comprimida. Isto porque o principal problema da voz é ter um nível correcto no início da frase mas já incorrecto no final. A adicionar o final das palavras é menos sonoro que o início. Tudo isto torna impossível utilizar som de voz sem compressão. Exemplo de configuração: 'Short attack, mid-time release, low threshold, very high ratio'.</para +></glossdef +></glossentry> +<glossentry +><glossterm +>Controlo 1: Limitando o nível</glossterm +><glossdef +><para +>Para limitar apenas os picos mas não comprimir toda a dinâmica proceda a 'high threshold', a 'high ration', a 'short attack' e 'short-to-mid release'. Este procedimento protege a sua gravação de alguma distorção digital interna e, mantendo o nível baixo, remove picos raros e arranja mais espaço para o sinal actual em gravação.</para +></glossdef +></glossentry> +<glossentry +><glossterm +>Controlo 2: Executando controlo real</glossterm +><glossdef +><para +>Fazer controlo real de música é difícil e depende totalmente do seu ouvido bem como da música a ser controlada. Normalmente usará 'fast attacks' para obter uma redução de nível suficiente para os graves da batida do tambor. Por outro lado não vai querer que a música tenha altos e baixos só por causa dos graves do tambor por isso irá seleccionar uma série mais longa. O factor de compressão não deverá ser muito elevado. O ideal seria ligar um limitador depois do compressor para se ver livre dos 'clicks' e dos cortes.</para +></glossdef +></glossentry> +<glossentry +><glossterm +>Instrumentos solitários</glossterm +><glossdef +><para +>Estas configurações dependem do tipo de instrumento. Na gravação é aconselhado o uso de uma opção limitadora.</para +></glossdef +></glossentry> +<glossentry +><glossterm +>Última dica</glossterm +><glossdef +><para +>Use os seus ouvidos e pratique um pouco. Tudo é permitido se soa bem!</para +></glossdef +></glossentry> +<!--<glossentry +><glossterm +>Term</glossterm +><glossdef +><para +>Definition</para +></glossdef +></glossentry +>--> +</glosslist> +</sect2> +</sect1> + +<sect1 id="configuration"> +<title +>Configuração</title> +<para +>Duas páginas estão disponíveis na configuração. A primeira destina-se a configurações gerais e explicadas nesta secção. A segunda sobre as configurações de qualidade por omissão são descritas em <xref linkend="quality"/>. </para> +<screenshot> +<screeninfo +>Opções gerais</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="krec-configuration.png" format="PNG"/> +</imageobject> +<textobject> +<phrase +>Edição das configurações gerais do &krec;.</phrase> +</textobject> +</mediaobject> +</screenshot> +<para +>A primeira parte é constituída por configurações sobre o modo de apresentar o tempo decorrido de gravação e posições. O estilo "Palin samples" mostra apenas o número de amostras, o segundo apresenta opcionalmente horas, minutos, segundos e amostras. O terceiro estilo é o mesmo do segundo excepto pela apresentação de 'frames' em vez de amostras. O quarto estilo mostra a dimensão em megabytes e kilobytes e é útil para controlar o espaço em disco. No lado direito dos estilos tem a oportunidade de seleccionar o número de 'frames' formados por segundo. </para> +<para +>A caixa de selecção abaixo faz com que a informação de tempo seja mais detalhada mostrando também a unidade de medida. </para> +<para +>Se quiser rever a dica do dia no início pode seleccionar a próxima caixa de selecção. O botão abaixo volta a mostrar todas as mensagens onde seleccionou "Não voltar a mostrar esta mensagem", a maior parte mensagens das funções de exportação. </para> +</sect1> + +<sect1 id="exporting"> +<title +>Exportação</title> +<blockquote> +<attribution +>Um fan anónimo do &krec;</attribution> +<para +>A sua aplicação é muito boa, uso-a todo o dia mas falta exportação para wave/mp3/ogg!</para> +</blockquote> +<para +>Aqui está: a funcionalidade de exportação definitiva para o &krec;. Os formatos de exportação disponíveis variam consoante as livrarias encontradas na altura da compilação, todas as correntemente disponíveis são descritas nas secções seguintes. </para> +<para +>A selecção do 'plugin' de exportação pretendido é efectuado através do nome de ficheiro: Seleccione <guimenuitem +>Exportar Ficheiro...</guimenuitem +> a partir do menu <guimenu +>Ficheiros</guimenu +>, escolha o nome para o ficheiro exportado e a sua extensão tal como o 'plugin' determinado pela sua extensão. A lista de extensões na caixa de diálogo mostra todos os 'plugins' de exportação disponíveis. </para> +<para +>Para que entenda o uso da exportação, tecnicamente exportar funciona como tocar. Significa que terá que ir para a posição de onde pretende começar a exportar antes de tudo. Significa também que pode ver o progresso da exportação movendo-se desde a posição inicial marcada. E significa também que no futuro poderá exportar toda a selecção que queira tal e qual como se a tivesse a tocar. </para> +<sect2 id="export_wave"> +<title +>Exportar para Wave (*.wav)</title> +<para +>O mais simples plugin de exportação. Exporta o seu ficheiro &krec; para um ficheiro wave com as configurações de qualidade que seleccionou para todo o ficheiro. </para> +</sect2> +<sect2 id="export_mp3"> +<title +>Exportar para MP3 (*.mp3)</title> +<para +>Talvez a possibilidade de exportação mais requerida. Este exporta o seu ficheiro &krec; para um mp3. </para> +<important +><para +>As configurações de qualidade que escolheu na secção do &kcontrol; <quote +>Sound & Multimedia</quote +> / <quote +>Audio CDs</quote +> são usadas nesta versão já que o &krec; também usa as mesmas livrarias que a função audiocd:/. </para +></important> +</sect2> +<sect2 id="export_ogg"> +<title +>Exportar para OGG (*.ogg)</title> +<para +>Este exporta o seu ficheiro &krec; para um ficheiro ogg. </para> +<important +><para +>As configurações de qualidade que escolheu na secção do &kcontrol; <quote +>Sound & Multimedia</quote +> / <quote +>Audio CDs</quote +> são usadas nesta versão já que o &krec; também usa as mesmas livrarias que a função audiocd:/. </para +></important> +</sect2> +</sect1> + +<sect1 id="play_thru"> +<title +>Avançar</title> +<para +>Para aqueles que queriam ouvir o que estão a gravar existe uma opção <quote +>Avançar</quote +> muito útil, no menu <guimenu +>Tocar</guimenu +>. Aconselho o seu uso sempre que possível especialmente se efectuar coisas como usar o compressor ou outros efeitos e queira controlar o que está actualmente a ser gravado. </para> +<caution +><para +>Verifique se não origina um ciclo de feedback enquanto grava a partir da <emphasis +>saída_placa de som</emphasis +> e activando o <quote +>Avançar</quote +>. Tal ciclo é demasiado para o pobre &arts; e atrasa o sistema! Poderá terminar o &arts;... </para +><para +>A razão deve-se ao facto do &arts; calcular um cruzamento áudio para todas as amostras (de facto blocos de amostras) e se a amostra é construída através de ciclos o &arts; tem que calcular mais do que lhe é possível. </para +></caution> +</sect1> + +<sect1 id="quality"> +<title +>Configurações sobre qualidade</title> +<screenshot> +<screeninfo +>As propriedades para novos ficheiros</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="krec-new_file_properties.png" format="PNG"/> +</imageobject> +<textobject> +<phrase +>Este é o diálogo para escolha das propriedades dos novos ficheiros.</phrase> +</textobject> +</mediaobject> +</screenshot> +<para +>Enquanto cria um novo ficheiro &krec; está caixa de diálogo é apresentada e permite-lhe escolher algumas opções respectivas à qualidade das gravações. Todas estas opções tem impacto na dimensão do ficheiro. </para> +<para +>O <emphasis +>Taxa de Amostragem</emphasis +> é a taxa que indica ao sistema áudio quantas amostras deverão ser tiradas por segundo e a sua medida em Hertz (Hz) respectivamente Kilohertz (kHz). Quanto mais alta a taxa mais alta é a frequência de gravação. Como são necessárias pelo menos duas amostras para formar uma onda <quote +>sinusoidal</quote +> a frequência de gravação máxima é metade da taxa de amostragem. O ouvido humano é capaz de ouvir tons até qualquer coisa como 10Khz a 20Khz dependendo da idade, crianças possivelmente ouvem perto de 20Khz enquanto que um adulto normal têm o seu máximo a 15Khz e pessoas mais idosas podem descer a 10Khz. Mas mesmo sem ouvir as frequências mais altas estas ainda continuam a exercer o seu efeito sobre o que é ouvido e sentido (palavra chave correspondente: acústica psíquica). </para> +<para +>O número de canais pode ser escolhido livremente dependendo da tarefa da gravação. Se estiver a utilizar um microfone mono sem aplicar efeitos estéreo pode seguramente escolher <quote +>Mono</quote +> sem perda de informação. </para> +<para +>A última parte é o número de bits utilizado por amostra, possivelmente entre 8 a 16 bits. Quanto maior o número de bits mais passos estão disponíveis para a gama que vai desde o sinal mínimo a máximo. Sendo 8 bits um byte podemos-nos referir como uma amostra de um byte ou dois bytes. </para> +<para +>O espaço necessário para gravação pode ser calculado de um modo simples: a taxa de amostragem multiplicada pelo número de canais multiplicado pelo número de bytes por segundo multiplicado pelo número de segundos que se quer gravar. </para> +<example +><title +>Cálculo da dimensão de um minuto em qualidade CD</title +><para +>Para um minuto (60 segundos) de áudio em qualidade CD ((44100Hz, 16bits, estéreo) o espaço necessário é: 44100 * 2 * 2 * 60 = 1058400 Bytes = 10335.938 Kilobytes. Cerca de 10 MByte de data por minuto. </para +></example> +<tip +><para +>Utilize sempre a melhor qualidade pedida! A redução posterior da qualidade é possível, mas melhorar a mesma torna-se impossível pelo facto de ser necessário mais informação disponível. </para +></tip> +<para +>O último item abaixo do botão é uma caixa de opção para fazer entrar valores por omissão para todos os ficheiros novos sem voltar esta caixa de diálogo. </para> +<para +>Como a caixa de diálogo também está disponível na configuração escolha as opções standard, a caixa de selecção "Use por omissão..." também está disponível para que apareça a caixa de diálogo por cada ficheiro. </para> +</sect1> + +<sect1 id="vu-meter"> +<title +>Medidor 'VU-Meter'</title> +<para +>Sendo o compressor pouco necessário para a maior parte das tarefas, já o 'vu-meter' com o seu controlo de volume embutido é uma das partes mais importantes do &krec; para as gravações. Mostra o nível actual da gravação que está a ser feita para um ficheiro depois de usados efeitos e depois do volume ter sido definido no controlo. Se este estiver na zona vermelho escuro, provavelmente a gravação estará cortada e não soará bem. Se se mantém nos 2% provavelmente não irá ouvir grande coisa da gravação. </para> +<tip +><para +>Para boas gravações o nível deverá estar entre -12dB and 0dB na maior parte do tempo. </para +></tip> +<tip +><para +>Utilize o compressor para edição dos aspectos dinâmicos das suas gravações. Veja <xref linkend="compressor"/> para mais informações. </para +></tip> +</sect1> + +</chapter> + + + +<chapter id="credits"> +<title +>Créditos e Licença</title> +<para +>&krec; </para> +<para +>Direitos do programa 2002-2003 Arnold Krille<email +>arnold@arnoldarts.de</email +> </para> +<para +>Direitos da documentação 2002-2004 Arnold Krille <email +>arnold@arnoldarts.de</email +> </para> +<para +>Tradução de Rui Branco <email +>freedebian@netcabo.pt</email +></para +> +&underFDL; &underGPL; </chapter> + +<appendix id="installation"> +<title +>Instalação</title> + +<sect1 id="getting-krec"> +<title +>Como obter o &krec;</title> +&install.intro.documentation; </sect1> + +<sect1 id="requirements"> +<title +>Requisitos</title> +<para +>Para utilizar com sucesso o &krec; 0.5.1, necessita do &kde; 3.3. </para> +<para +>&krec; deverá estar dentro do pacote tdemultimedia. Este pacote necessita do &kde; e do &arts; a funcionar. </para> +</sect1> + +<sect1 id="compilation"> +<title +>Compilação e Instalação</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-pt/docs/tdemultimedia/kscd/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/kscd/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/kscd/Makefile.in new file mode 100644 index 00000000000..9dca6ac8e0d --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- 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-pt/docs/tdemultimedia/kscd/index.cache.bz2 b/tde-i18n-pt/docs/tdemultimedia/kscd/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..9cc0984e57a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/index.cache.bz2 diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/index.docbook b/tde-i18n-pt/docs/tdemultimedia/kscd/index.docbook new file mode 100644 index 00000000000..adfb9cef429 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/index.docbook @@ -0,0 +1,1626 @@ +<?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 % Portuguese "INCLUDE" +> <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>O Manual do &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 +>a9403784@unet.univie.ac.at</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 +>Desenvolvimento</contrib> +</othercredit> + +<othercredit role="developer" +><firstname +>Dirk</firstname +> <surname +>Forsterling</surname +> <affiliation +><address +><email +>milliByte@gmx.net</email +></address +></affiliation> +<contrib +>Desenvolvimento</contrib> +</othercredit> + +<othercredit role="developer" +><firstname +>Dirk</firstname +> <surname +>Foersterling</surname +> <affiliation +><address +><email +>milliByte@gmx.net</email +></address +></affiliation> +<contrib +>Desenvolvimento</contrib> +</othercredit> + +<othercredit role="reviewer" +><firstname +>Lauri</firstname +> <surname +>Watts</surname +> <affiliation +><address +>&Lauri.Watts.mail;</address +></affiliation> +<contrib +>Revisão</contrib> +</othercredit> +<othercredit role="translator" +><firstname +>José</firstname +><surname +>Pires</surname +><affiliation +><address +><email +>jncp@netcabo.pt</email +></address +></affiliation +><contrib +>Tradução</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 +>O &kscd; é um leitor de <abbrev +>&CD;</abbrev +>s pequeno, rápido e com o <abbrev +>CDDB</abbrev +> activo para as plataformas de &UNIX;.</para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>tdemultimedia</keyword> +<keyword +>kscd</keyword> +<keyword +>música</keyword> +<keyword +>CD</keyword> +<keyword +>áudio</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title +>Introdução</title> + +<para +>O &kscd; é um leitor de &CD;s rápido, com suporte <abbrev +>CDDB</abbrev +>, para a plataforma &UNIX;. &kscd; significa <quote +>The KDE Project's small/simple &CD; player</quote +>.</para> + +<para +><emphasis +>Novo</emphasis +>: A programa <filename +>workman2cddb.pl</filename +> em Perl fornecido para facilitar a transição para os utilizadores do 'workman'.</para> + +<para +>Esperemos que goste deste leitor de &CD;s.</para> + +<para +>&Bernd.Johannes.Wuebben;</para> + +<para +>&Bernd.Johannes.Wuebben.mail;</para> + +<sect1 id="supported-platforms"> +<title +>Plataformas Suportadas</title> + +<para +>O &kscd; suporta explicitamente as seguintes 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; (incluindo o suporte de <acronym +>cdda</acronym +>)</para +></listitem> +<listitem +><para +>&HP-UX;</para +></listitem> +<listitem +><para +>Irix da &SGI; (incluindo o suporte de <abbrev +>cdda</abbrev +>)</para +></listitem> +<listitem +><para +>Sony NEWS</para +></listitem> +<listitem +><para +>OSF/1</para +></listitem> +<listitem +><para +>Ultrix</para +></listitem> +</itemizedlist> + +<para +>e deverá conseguir compilar em muitos outros com poucas modificações.</para> + +</sect1> + +</chapter> + +<chapter id="onscreen-fundamentals"> +<title +>Fundamental do ecrã</title> + +<sect1 id="basic-operation"> +<title +>Operação Básica</title> + +<screenshot> +<screeninfo +>A Interface do &kscd;.</screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="kscd.png" format="PNG"/></imageobject> +<textobject +><phrase +>A Interface do &kscd;.</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Esta é a janela principal do &kscd;. Você deverá ver algo do género quando inicia o &kscd;. Os controlos desta janela estão explicado em baixo, sem nenhuma ordem em particular.</para> + +<sect2 id="control-panel"> +<title +>O Painel de Controlo</title> + +<screenshot> +<screeninfo +>O Painel de Controlo</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd2.png" format="PNG"/></imageobject> +<textobject +><phrase +>O Painel de Controlo</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Este é o painel de controlo principal do &kscd;. A função destes botões deverá ser familiar para todos os que já usaram um leitor de &CD;s alguma vez.</para> + +<para +>O botão superior no diagrama comuta entre a leitura e a pausa do &CD;. O botão esquerdo da segunda fila pára o &CD;. O botão direito da segunda fila activa ou desactiva a repetição do ciclo de leitura, de modo a que o &CD; irá começar a tocar de novo do início quando for atingido o fim da última faixa de áudio. Os botões da terceira fila avançam ou recuam o &CD; (botão esquerdo ou direito, respectivamente) 30 segundos. Os dois botões na área de estado saltam para o início da faixa anterior (botão esquerdo) ou seguinte (botão direito). O botão esquerdo da fila inferior comuta o modo aleatório; o botão direito da mesma fila comuta a leitura em ciclo, de modo que o &CD; irá começar a tocar de novo do início quando chegar ao fim da última faixa de áudio.</para> +</sect2> + + +<sect2 id="status-display"> +<title +>A Área de Estado</title> + +<screenshot> +<screeninfo +>A Área de Estado</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd3.png" format="PNG"/></imageobject> +<textobject +><phrase +>A Área de Estado</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Esta é a área de estado. A começar do topo, e da direita para a esquerda, está a área de apresentação do tempo (veja em baixo uma discussão sobre os modos de apresentação do tempo possíveis), o estado da unidade de &CD-ROM;, o tempo total de reprodução do &CD; de áudio, a configuração actual do volume e o número actual e total da faixa (actual/total). As duas linhas inferiores mostra o artista e o título do &CD;, e depois o título da faixa, assumindo que existem registos apropriados no <acronym +>CDDB</acronym +> local ou da rede (&CD; Data Base - Base de Dados de &CD;s.)</para> + +<para +>Este botão comuta entre so vários modos de apresentação do tempo principal. Por omissão, o &kscd; mostra o tempo decorrido na faixa actual, se o &CD; estiver a tocar, ou então ––:–– ou 00:00 se o &CD; não estiver a tocar. Se carregar neste botão, comuta em sequência para o tempo restante da faixa, o tempo total decorrido e o tempo total restante.</para> +</sect2> + +<sect2 id="configuration-button"> +<title +>O botão de <guibutton +>Configuração</guibutton +></title> + +<screenshot> +<screeninfo +>O botão Extras</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd5.png" format="PNG"/></imageobject> +<textobject +><phrase +>O botão Extras</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Este botão abre um menu com um conjunto de opções. Pode optar por abrir o painel de configuração do &kscd;. Isto permite-lhe configurar o &kscd; para funcionar na sua máquina de acordo com o seu gosto. Veja a secção <link linkend="configuring-kscd" +>configurar o &kscd;</link +> para mais detalhes sobre como configurar o &kscd;</para> +<para +>O menu contém várias ferramentas para ajudá-lo a procurar por informações acerca do artista na Internet. Você poderá saber mais sobre as datas de espectáculos, informações de compras e outras informações se carregar neste botão e escolher a opção apropriada no menu de contexto que aparece.</para> +<para +>Este menu também lhe permite abrir este documento de ajuda, comunicar erros, aprender mais sobre o &kscd; e o &kde; e sair do &kscd;.</para> +</sect2> + +<sect2 id="cddb-button"> +<title +>O botão do <guibutton +>CDDB</guibutton +></title> + +<screenshot> +<screeninfo +>O botão do <acronym +>CDDB</acronym +></screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd6.png" format="PNG"/></imageobject> +<textobject +><phrase +>O botão do <acronym +>CDDB</acronym +></phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Este botão abre o painel de edição dos registos do <acronym +>CDDB</acronym +> (Compact Disc Data Base). </para> + +<para +>O <acronym +>CDDB</acronym +> poderá identificar o seu &CD; e obtém uma lista das faixas para esse &CD; da rede ou poderá consultar a partir do sistema de ficheiros. Veja a secção do <link linkend="cddb-editor" +>Editor da Base de Dados de &CD;s</link +> para mais detalhes sobre como usar esta ferramenta.</para> +</sect2> + + + + +<sect2> +<title +>A barra de Volume</title> + +<screenshot> +<screeninfo +>A barra de Volume</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd9.png" format="PNG"/></imageobject> +<textobject +><phrase +>A barra de Volume</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Este botão abre uma barra que controla o volume da saída de áudio do &CD;. Para a direita fica mais alto, enquanto que para a esquerda fica mais baixo. Se você estiver a tocar o seu &CD; através da sua placa de som, a mesa de mistura da placa de som irá afectar o volume da reprodução também.</para> +</sect2> + + +<sect2> +<title +>O selector de faixas</title> + +<screenshot> +<screeninfo +>O selector de faixas</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd11.png" format="PNG"/></imageobject> +<textobject +><phrase +>O selector de faixas</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Esta lista mostra-lhe o número da faixa actual, o nome da faixa e a duração (em minutos e segundos). Poderá usar esta lista para seleccionar directamente qualquer faixa do &CD;. </para> +</sect2> + +</sect1> +</chapter> + +<chapter id="configuring-kscd"> +<title +>Configurar o &kscd;</title> +<sect1 id="configuration-intro"> +<title +>A janela de configuração principal</title> + +<para +>Poderá configurar o &kscd; se carregar no botão de <guibutton +>Extras</guibutton +>. Isto irá invocar um menu, onde pode seleccionar a opção <guilabel +>Configurar o &kscd;...</guilabel +>. Isto irá abrir uma janela nova.</para> +<para +>A janela de configuração principal do &kscd; está dividida em duas secções principais. </para> + +<itemizedlist> +<listitem +><para +><link linkend="kscd-options-tab" +><guilabel +>Leitor de CDs</guilabel +></link +> para determinar a aparência e comportamento do &kscd;.</para +></listitem> +<listitem +><para +><guilabel +>CDDB</guilabel +>, que é usado para configurar as funcionalidades de pesquisa no CDDB para o &kscd;.</para +></listitem> +</itemizedlist> + +<para +>Poderá alternar entre estas duas secções, usando os ícones do lado esquerdo da janela.</para> +</sect1> + +<sect1 id="kscd-options-tab"> +<title +>A janela do <guilabel +>Leitor de CDs</guilabel +></title> + +<screenshot> +<screeninfo +>A janela do <guilabel +>Leitor de CDs</guilabel +></screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd12.png" format="PNG"/></imageobject> +<textobject +><phrase +>A janela da <guilabel +>Configuração do KSCD</guilabel +></phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>O texto <guilabel +>Tipo de letra LCD:</guilabel +> indica o tipo de letra seleccionado de momento para mostrar todas as informações na área de estado do &kscd;. Para mudar o tipo de letra, carregue no botão <guibutton +>Escolher...</guibutton +>.</para> + +<para +>Os campos <guilabel +>Cor do LCD:</guilabel +> e <guilabel +>Cor de fundo:</guilabel +> mostram a cor seleccionada para o texto e para o fundo da área de estado. Carregue nas barras de cores para alterar essas cores.</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 +>Se assinalar a opção <guilabel +>Mostrar o ícone da bandeja do sistema</guilabel +> faz com que um controlo para o &kscd; apareça no painel &kicker;.</para> + +<para +>Se assinalar a opção <guilabel +>Mostrar o anúncio de faixa</guilabel +>, fará com que apareça uma pequena janela de informação, por cima da janela do Kicker, de cada vez que a faixa do &CD; muda. Esta janela irá desaparecer automaticamente ao fim de 5 segundos.</para> + +<screenshot> +<screeninfo +>Exemplo de anúncio de faixas</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscdannounc.png" format="PNG"/></imageobject> +<textobject +><phrase +>Exemplo de anúncio de faixas</phrase +></textobject> +</mediaobject> +</screenshot> + + +<para +>Ajuste o <guilabel +>Intervalo do salto</guilabel +> para o número de segundos para mover para a frente ou para trás dos quando os botões <guibutton +>avançar</guibutton +> ou <guibutton +>recuar</guibutton +> no Painel de Controlo forem carregados.</para> + +<para +>O <guilabel +>Tocar automaticamente ao introduzir o CD</guilabel +> faz com que o &CD; comece a tocar quando a bandeja do &CD; for fechada, sem ter de carregar no botão <guibutton +>Tocar</guibutton +>.</para> + +<para +>O <guilabel +>Ejectar o CD ao terminar a reprodução</guilabel +> faz com que o &CD; seja ejectado do leitor quando terminar de tocar.</para> + +<para +><guilabel +>Parar de tocar o CD ao sair</guilabel +> faz com que a leitura do &CD; pare quando o &kscd; é fechado.</para> + +<para +>O campo do <guilabel +>Dispositivo de CD-ROM</guilabel +> contém o nome do dispositivo de &CD-ROM; a usar para tocar os &CD;s de áudio. O valor por omissão é <filename +>/dev/cdrom</filename +>. As permissões para este dispositivo deverão estar definidas para permitir o acesso a este dispositivo para leitura. A alteração das permissões neste dispositivo irão obrigar normalmente a ter privilégios de super-utilizador e poderão ser feitas na linha de comandos ou no Modo de Super-Utilizador do &konqueror;.</para> + +<note +><para +>Antes de discutir as opções seguintes, é importante compreender que existem duas formas de tocar um &CD; nos computadores.</para> + +<para +>O primeiro método (que o &kscd; se refere como sendo a reprodução digital directa) é efectuado através da leitura dos dados digitais do &CD; com a Digital Audio Extraction (DAE - Extracção de Áudio Digital). Estes dados são enviados para o CPU da sua máquina, o qual converte os dados digitais para som. Este método necessita de um leitor de &CD;s que seja capaz de efectuar DAE (a maioria dos leitores novos são) e necessita de algum processamento de CPU para gerar os sons que ouvir.</para> + +<para +>O segundo método usa os circuitos internos disponíveis na maioria dos leitores de &CD;s para ler os dados e gerar os sons que irá ouvir, sem usar o CPU do seu computador. Estes dados são transmitidos por um cabo dedicado ligado directamente à placa de som do seu computador. Este método necessita de menos poder de processamento do CPU, mas obriga a que o cabo dedicado esteja ligado dentro do seu computador. Nem todos os computadores têm essa ligação.</para +></note> + +<para +>A opção <guilabel +>Usar a reprodução digital directa</guilabel +> determina o método que o &kscd; usa para ler as faixas de áudio. Se estiver assinalada, é usado o primeiro método. Se não estiver, é usado o segundo método.</para> + +<para +>Se tiver seleccionado a reprodução digital directa, aparece uma lista chamada <guilabel +>Seleccione a infra-estrutura de áudio:</guilabel +> que lhe permite seleccionar a infra-estrutura de som para onde será enviada a informação digital. O conteúdo da lista irá variar, dependendo do seu sistema. A maioria dos utilizadores deverão escolher o <guilabel +>arts</guilabel +>. Poderá também seleccionar o dispositivo que a infra-estrutura de áudio usa, indicando a localização do dispositivo no campo de texto <guilabel +>Seleccione o dispositivo de áudio:</guilabel +>. Uma descrição completa dos dispositivos e infra-estruturas de áudio está para além do âmbito deste manual.</para> + +<para +>Se a opção <guilabel +>Permitir a selecção da codificação</guilabel +> estiver assinalada, poderá seleccionar a codificação do texto para os resultados de uma pesquisa de CDDB.</para> +<tip +><para +>A norma diz que os resultados do CDDB são estritamente Latin 1. Se não tiver problemas com a sua informação de CDDB, deixe esta opção desligada.</para +></tip> + + +<para +>O botão <guibutton +>Ajuda</guibutton +> abre a página do conteúdo da ajuda do &kscd;. O botão <guibutton +>OK</guibutton +> grava as opções actuais e sai; o <guibutton +>Aplicar</guibutton +> grava as opções actuais sem sair; o <guibutton +>Cancelar</guibutton +> sai sem gravar. </para> +</sect1> + +<sect1 id="freedb-tab"> +<title +>A página <guilabel +>Procura freedb</guilabel +></title> +<screenshot> +<screeninfo +>A página <guilabel +>Procura freedb</guilabel +> da janela de configuração</screeninfo> +<mediaobject> +<imageobject +> <imagedata fileref="kscd14.png" format="PNG"/> </imageobject> +<textobject +><phrase +>A página <guilabel +>Procura freedb</guilabel +> da janela de configuração</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>A página <guilabel +>Procura freedb</guilabel +> configura as funções do <acronym +>CDDB</acronym +> no &kscd;.</para> + +<para +>A opção <guilabel +>Modo</guilabel +> determina como é que as pesquisas do <acronym +>CDDB</acronym +> são feitas. Se escolher a opção <guilabel +>Apenas a 'cache'</guilabel +> significa que só a informação que já existir no seu computador será usada. O <guilabel +>'Cache' e remoto</guilabel +> irá procurar a informação que você não tem ainda, enquanto que o <guilabel +>Apenas remoto</guilabel +> vai procurar todos os discos na Internet. O tempo-limite para a pesquisa poderá também ser definido.</para> + + +<para +>A secção do <guilabel +>Servidor de CDDB:</guilabel +> indica qual a réplica do sítio de CDDB que será usada pelo &kscd; para obter as informações do álbum. Poderá então indicar um nome de servidor, um número de porto e um protocolo, usando os campos de texto e as listas, ou carregar ainda no botão <guibutton +>Mostrar a Lista de Réplicas</guibutton +>. Se carregar neste botão, irá abrir uma janela nova com uma lista de servidores de CDDB e as suas localizações. Basta seleccionar o servidor que deseja na lista e carregar em <guibutton +>OK</guibutton +>.</para> + +<para +>A secção chamada <guilabel +>Localizações da 'cache'</guilabel +> permite-lhe determinar onde o &kscd; grava a informação de CDDB no seu computador. Para adicionar uma pasta, indique a localização da pasta no campo de texto no topo da secção e carregue em <guibutton +>Adicionar</guibutton +>. Poderá também seleccionar uma pasta, carregando no ícone da pasta azul à direita do campo de texto. Para remover uma pasta, carregue no nome da pasta uma vez com o &LMB; e carregue em <guibutton +>Remover</guibutton +>. Poderá alterar a ordem pela qual o &kscd; procura as pastas, carregando no nome da pasta e depois nos botões <guibutton +>Subir</guibutton +> e <guibutton +>Descer</guibutton +>.</para> + +<para +>O botão <guibutton +>Ajuda</guibutton +> abre a página do conteúdo da ajuda do &kscd;. O botão <guibutton +>OK</guibutton +> grava as opções actuais e sai; o <guibutton +>Aplicar</guibutton +> grava as opções actuais sem sair; o <guibutton +>Cancelar</guibutton +> sai sem gravar. </para> + +</sect1> + +<sect1 id="smtp-options"> +<title +>A página <guilabel +>Envio de freedb</guilabel +></title> + +<screenshot> +<screeninfo +>A página de Envio freedb</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd16.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para +>A página Enviar do 'freedb' configura a ligação a um servidor de e-mail para enviar os novos registos de <acronym +>CDDB</acronym +>. Isto é útil se você não tiver o seu próprio sistema como um servidor. </para> + +<para +>Se planear enviar um item de CDDB, é preciso decidir primeiro se deseja enviar via HTTP ou por e-mail (via SMTP). </para> + +<tip +><para +>É mais simples enviar os itens novos por &HTTP;. Algumas 'firewalls' bloqueiam este tráfego. Se a sua 'firewall' o impedir de enviar itens novos por &HTTP;, poderá usar o SMTP.</para +></tip> + +<para +>Tanto pode seleccionar primeiro o <guilabel +>&HTTP;</guilabel +> ou o <guilabel +>SMTP (E-mail)</guilabel +> para determinar o protocolo a usar.</para> + +<sect2 id="http-options"> +<title +>Usar o &HTTP; para enviar as informações de CDDB</title> +<para +>Poderá indicar um nome de servidor ou um número de porto nos campos de texto. Se quiser enviar esta informação para os servidores internacionais, não precisa de alterar nada.</para> +</sect2> + +<sect2 id="smtp2-options"> +<title +>Usar o SMTP (E-mail) para enviar as informações de CDDB</title> +<para +>Para preparar o envio de informações por e-mail, indique o seu endereço de e-mail no campo de texto <guilabel +>Endereço de resposta:</guilabel +>, o seu servidor de e-mail no campo de texto <guilabel +>Servidor de SMTP:</guilabel +> e seleccione o número do porto na lista <guilabel +>Porto:</guilabel +>.</para> +<para +>Se precisar de usar uma senha para enviar e-mail para o servidor, assinale a opção <guilabel +>O servidor necessita de autenticação</guilabel +> e indique o seu utilizador no campo de texto <guilabel +>Utilizador:</guilabel +>.</para> + +<para +>O botão <guibutton +>Ajuda</guibutton +> abre a página do conteúdo da ajuda do &kscd;. O botão <guibutton +>OK</guibutton +> grava as opções actuais e sai; o <guibutton +>Aplicar</guibutton +> grava as opções actuais sem sair; o <guibutton +>Cancelar</guibutton +> sai sem gravar. </para> +</sect2> +</sect1> + + +</chapter> + +<chapter id="cddb-editor"> +<title +>O <guilabel +>Editor da Base de Dados de CDs</guilabel +></title> + +<screenshot> +<screeninfo +>O Editor da Base de Dados dos &CD;s</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd13.png" format="PNG"/></imageobject> +<textobject +><phrase +>O Editor da Base de Dados dos &CD;s</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>O Editor de Bases de Dados de &CD;s permite-lhe modificar, obter, gravar, anotar e enviar registos de <link linkend="cddb-support" +><acronym +>CDDB</acronym +> (Compact Disc Data Base - Base de Dados de CDs)</link +>.</para> + +<para +>Se existir um registo na sua árvore de <acronym +>CDDB</acronym +> local (veja a secção de <link linkend="freedb-tab" +>CDDB</link +> no capítulo de Configuração) do &CD; na sua unidade de &CD-ROM;, ou se o disco foi encontrado no 'freedb', você irá ver o nome do artista e o título do &CD; nos campos <guilabel +>Artista:</guilabel +> e <guilabel +>Título</guilabel +> e uma lista com os títulos na área de selecção das <interface +>Faixas</interface +>. Caso contrário, você irá ver uma lista com as faixas e tempos de execução, mas sem títulos.</para> + +<para +>Você poderá fazer uma anotação do disco inteiro com o botão <guibutton +>Comentário</guibutton +> por baixo do campo <guilabel +>Título</guilabel +> ou para uma faixa seleccionada na lista <guilabel +>Faixas</guilabel +> com o botão <guibutton +>Comentário</guibutton +> adjacente. Se você seleccionar uma faixa na lista <guilabel +>Faixas</guilabel +>, o título, se estiver presente, irá aparecer no campo <guilabel +>Título</guilabel +> em baixo. Você poderá escrever um título para a faixa nesse campo ou editar o registo de acordo com as suas necessidades. Carregue na tecla <keycap +>Return</keycap +> do seu teclado e o texto irá aparecer na linha adequada da lista.</para> + +<para +>Logo que todas as faixas tenham títulos e os campos <guilabel +>Artista:</guilabel +> e <guilabel +>Título</guilabel +> tenham sido preenchidos, você poderá carregar no botão <guibutton +>Enviar</guibutton +> para submeter os resultados por e-mail para o 'freedb'.</para> + +<para +>Ser-lhe-á pedido para seleccionar uma categoria para o envio. O <guilabel +>ID do Disco</guilabel +> mostra o código de 32 bits usado pelo 'freedb' para identificar um disco compacto. Por cima do código identificador está a categoria do registo do <guilabel +>freedb</guilabel +>. Estas categorias correspondem à árvore de subpastas da pasta escolhida na <guilabel +>Pasta Base do 'freedb':</guilabel +> na página do <link linkend="freedb-tab" +><guilabel +>freedb</guilabel +></link +> da janela de Configuração do &kscd;.</para> + +<para +>O campo <guilabel +>Duração:</guilabel +> mostra o tempo total de reprodução do &CD;.</para> + +<para +>Carregue no botão <guibutton +>Obter a Informação</guibutton +> para obter os dados do <acronym +>CDDB</acronym +>. Carregue no botão <guibutton +>OK</guibutton +> para gravar localmente as suas alterações. O botão <guibutton +>Cancelar</guibutton +> fecha o Editor de Bases de Dados do &CD; sem gravar.</para> + +</chapter> + +<chapter id="using-kscd-in-the-panel"> +<title +>Usar o &kscd; no Painel do &kde;</title> + +<screenshot> +<screeninfo +>Usar o &kscd; no Painel do &kde;</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd18.png" format="PNG"/></imageobject> +<textobject +><phrase +>Usar o &kscd; no Painel do &kde;</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>Quando a opção <guilabel +>Mostrar o ícone na bandeja do sistema</guilabel +> estiver assinalada, uma pequena 'applet' do &kscd; é também mostrada no <application +>painel do KDE</application +>. Ao contrário da janela principal do &kscd;, esta 'applet' fica disponível em qualquer ecrã. Se carregar com o &RMB; na 'applet' irá aparecer um menu para controlar a reprodução do &CD;. Se carregar com o botão <mousebutton +>esquerdo</mousebutton +> na 'applet' irá esconder a janela principal do &kscd;. Se a janela principal estiver escondida, um segundo 'click' com o botão <mousebutton +>esquerdo</mousebutton +> na 'applet' irá repô-la. </para> + +<note +><para +>Para ser mais exacto, a 'applet' é mostrada na <application +>bandeja do sistema</application +> no painel. Se não aparecer nenhuma 'applet' quando o &kscd; é minimizado, você poderá ter removido a bandeja. Para a adicionar, carregue com o botão <mousebutton +>direito</mousebutton +> num espaço vazio do painel e seleccione <menuchoice +><guisubmenu +>Adicionar</guisubmenu +> <guisubmenu +>'Applet'</guisubmenu +> <guimenuitem +>Bandeja do Sistema</guimenuitem +> </menuchoice +></para +></note> + +</chapter> + +<chapter id="cddb-support"> +<title +>Suporte de <acronym +>CDDB</acronym +></title> + +<para +>O 'freedb' é uma base de dados distribuída na rede que está acessível na Internet e que contém informações sobre a maioria dos &CD;s de áudio em circulação. Se você tiver um acesso à Internet, você poderá nunca ter de introduzir manualmente a informação das faixas para os seus &CD;s se tiver isto configurado convenientemente. Veja a subsecção da <link linkend="freedb-tab" +>página do 'freedb'</link +> no capítulo de configuração do &kscd; para obter informações mais detalhadas sobre como configurar este serviço, e a secção do <link linkend="cddb-editor" +>Editor de Bases de Dados de CDs</link +> para mais instruções sobre como editar os registos do <acronym +>CDDB</acronym +>.</para> + +<para +>A utilização do <acronym +>CDDB</acronym +> é livre. São encorajados os envios por parte dos utilizadores.</para> + +<para +>Ao preparar os registos para o <acronym +>CDDB</acronym +>, tenha em mente os seguintes pontos:</para> + +<itemizedlist> +<listitem +><para +>Use caracteres 'latin' <quote +>padrão</quote +> nos registos. Alguns caracteres especiais são suportados, mas os envios em Cirílico ou Grego, por exemplo, não poderão ser aceites.</para +></listitem> +<listitem +><para +>Use só um carácter <keysym +>/</keysym +> no campo <guilabel +>Artista do Disco / Título</guilabel +> no Editor de Bases de Dados do &CD;.</para> + +<para +>Para os &CD;s clássicos, é uma prática normal colocar o nome do compositor na secção do Artista (antes da barra) e o nome do cantor na secção Título (depois da barra).</para +></listitem +> +<listitem +><para +>Se enviar um registo que já exista na base de dados, todas as informações adicionais que enviar poderão ser adicionadas ao registo existente.</para> +</listitem> +</itemizedlist> + +<para +>Por omissão, o &kscd; instala as categorias-padrão do <acronym +>CDDB</acronym +> em <filename class="directory" +>$KDEDIR/share/apps/kscd/cddb</filename +>. Você poderá criar tantas subpastas de categorias quantas desejar. Contudo, ao enviar, só as categorias oficiais do <acronym +>CDDB</acronym +> serão apresentadas. O endereço de envio por omissão é o <email +>freedb-submit@freedb.org</email +>. Para mais informações sobre o <abbrev +>freedb</abbrev +> visite a página pessoal do <abbrev +>freedb</abbrev +>.</para> + +<para +>O registo de <acronym +>CDDB</acronym +> local para um dado &CD; é armazenado no ficheiro <filename +><replaceable +>nome da categoria</replaceable +>/<replaceable +>ID do disco</replaceable +></filename +> na Pasta de Base do <acronym +>CDDB</acronym +>. Estes ficheiros poderão ser editados com qualquer editor de texto se não tiver nada de melhor para fazer com o seu tempo livre.</para> + +</chapter> + +<chapter id="troubleshooting"> +<title +>Resolução de problemas com o leitor de CDs</title> + +<para +>Esta secção do manual oferece um guia passo-a-passo para resolver problemas com o seu leitor de CD's, se este não tocar um &CD; de áudio</para> + +<sect1 id="ts-begin"> +<title +>Início da resolução de problemas</title> +<para +>Para começar, coloque um CD de áudio no seu leitor de CDs. Feche a bandeja do leitor de CDs e carregue em Tocar na janela do &kscd;. Veja o leitor de CD's no seu computador e seleccione a ligação abaixo que melhor descreve o problema.</para> +<para +>Quando carreguei em <guilabel +>Tocar</guilabel +>:</para> +<itemizedlist> +<listitem +><para +><link linkend="ts-errorbox" +>Apareceu uma mensagem de erro</link +></para +></listitem> +<listitem +><para +><link linkend="ts-playing" +>Não apareceu nenhuma mensagem de erro</link +></para +></listitem> +</itemizedlist> +</sect1> +<sect1 id="ts-playing"> +<title +>Não obtive nenhuma mensagem de erro, mas não sai som dos meus altifalantes</title> +<para +>Primeiro, certifique-se que o volume está ligado no &kscd;.</para> +<para +>Perto do canto superior esquerdo da janela do &kscd;, localize a barra do volume. A barra de volume é parecida com o seguinte:</para> +<screenshot> +<screeninfo +>A barra de Volume</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd9.png" format="PNG"/></imageobject> +<textobject +><phrase +>A barra de Volume</phrase +></textobject> +</mediaobject> +</screenshot> +<para +>Carregue uma vez na barra vertical amarela e arraste a barra por completo para o extremo direito da barra.</para> +<para +>Se já consegue ouvir música, o problema está resolvido. Se continua a não ouvir música, carregue <link linkend="ts-kmixlevels" +>aqui</link +> para continuar.</para> +</sect1> +<sect1 id="ts-kmixlevels"> +<title +>Determinar se os níveis de volume da mesa de mistura estão elevados</title> +<para +>O próximo passo é determinar se os níveis de volume do &kmix; estão apropriados.</para> +<note +><para +>O &kmix; é um painel da mesa de mistura de som que vem incluído no &kde;. Esta mesa de mistura permite-lhe ajustar os níveis de volume relativos de muitos componentes de som.</para +></note> +<para +>Para iniciar o &kmix;, seleccione o <menuchoice +><guimenu +>Botão K</guimenu +><guimenuitem +>Multimédia</guimenuitem +> <guimenuitem +>&kmix;</guimenuitem +></menuchoice +>.</para> +<para +>Logo que o &kmix; tenha iniciado, ser-lhe-á apresentada uma janela nova com um conjunto de barras de volume. Dependendo da configuração, as barras poderão ter legendas ou estas poderão estar escondidas. Se não ver legendas nas barras, deverá torná-las visíveis antes de continuar. Para as tornar visíveis, seleccione a opção <menuchoice +><guimenu +>Configuração</guimenu +><guimenuitem +>Configurar o &kmix;...</guimenuitem +></menuchoice +> na janela do &kmix;. Isto irá abrir uma pequena janela com algumas opções. Para activar as legendas, assinale a opção <guilabel +>Mostrar os nomes</guilabel +> e carregue em <guibutton +>OK</guibutton +>.</para> +<para +>Cada uma das barras controla o volume de um dispositivo de áudio diferente. Existem duas partes para cada dispositivo que poderão ser alteradas. Se olhar para uma barra, existe uma luz verde por cima de cada barra. Se carregar nessa luz, poderá mudar entre um verde claro e um verde escuro. Se a luz for escura, esse dispositivos de áudio está mudo e não irá produzir qualquer som. Se for clara, esse dispositivo não está mudo. Logo que tenha confirmado que não está mudo, pode aumentar o volume do dispositivo, arrastando a barra amarela para cima. O volume de um dispositivo de áudio é diminuído se arrastar a barra amarela para baixo.</para> +<note +><para +>Algumas barras terão também uma luz vermelha. Esta luz não é importante para a reprodução dos CDs, como tal poderá ignorá-la por agora.</para +></note> +<para +>Carregue na página <guilabel +>Saídas</guilabel +>.</para> +<para +>Certifique-se por favor que as barras não estão mudas (se a luz verde está acesa) e se a barra amarela está completamente no topo da barra para os seguintes dispositivos áudio:</para> +<itemizedlist> +<listitem +><para +><guilabel +>Mestre</guilabel +></para +></listitem> +<listitem +><para +><guilabel +>Mestre Mono</guilabel +></para +></listitem> +<listitem +><para +><guilabel +>Altifalante do PC</guilabel +></para +></listitem> +<listitem +><para +><guilabel +>PCM</guilabel +></para +></listitem> +</itemizedlist> + +<para +>Se continua a não ouvir o &CD;, carregue na página <guilabel +>Entradas</guilabel +></para> +<para +>Agora, certifique-se que a barra <guilabel +>CD</guilabel +> não está muda (com a luz verde acesa) e que a barra amarela está por completo no topo da barra.</para> +<para +>Se ouvir o &CD; agora, poderá parar a resolução de problemas. Caso contrário, carregue <link linkend="ts-othersounds" +>aqui</link +> para continuar</para> +</sect1> +<sect1 id="ts-othersounds"> +<title +>Determinar se estão disponíveis outros sons no meu computador</title> +<para +>Nesta secção, vamos testar se consegue ouvir outros tipos de som no seu computador. Podê-lo-á fazer se tocar um som nos altifalantes que esteja gravado no seu disco rígido. </para> +<para +>Primeiro, é necessário localizar um ficheiro de teste apropriado. Isso será feito através da linha de comandos.</para> +<para +>Seleccione a opção <menuchoice +><guimenu +>Botão K</guimenu +><guimenuitem +>Sistema</guimenuitem +> <guimenuitem +>&konsole;</guimenuitem +></menuchoice +>. Irá aparecer uma janela nova com uma linha de comandos. Nesta, poderá escrever:</para> +<para +><screen +><prompt +>$</prompt +> <userinput +><command +>locate -n1 KDE_Window_Open.wav</command +></userinput +></screen +></para> +<para +>Quando carregar em Return, irá ocorrer uma pausa e irá aparecer uma única linha com a localização do ficheiro, por baixo do comando introduzido.</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 +>Agora, poderá pedir ao &kde; para tocar este pequeno ficheiro de som. Escreva o texto <command +>noatun</command +> seguido de um espaço. Depois copie a localização completa do ficheiro que acabou de localizar com o comando anterior. Por exemplo: </para> +<para +><screen +><prompt +>$</prompt +> <userinput +><command +>noatun /usr/local/kde/share/sounds/KDE_Window_Open.wav</command +></userinput +></screen +></para> +<para +>Se ouviu um som curto, <link linkend="ts-othersoundsplay" +>carregue aqui</link +>.</para> +<para +>Se não ouviu um som curto, o seu sistema de som não está configurado correctamente. Carregue <link linkend="ts-noothersounds" +>aqui</link +> para continuar.</para> +</sect1> + +<sect1 id="ts-noothersounds"> +<title +>O som de teste não conseguiu ser tocado</title> +<para +>Até agora, verificou-se que o volume no &kscd; e todos os níveis de mistura do &kmix; estão configurados correctamente. Foi também enviado um som de teste e também não conseguiu ouvir esse som. Isto sugere que o problema não está com o &kscd; mas sim com a sua configuração de som.</para> +<note +><para +>Certifique-se que o &CD; continua a tocar no seu leitor de CDs.</para +></note> +<para +>Primeiro, terá de se certificar que os seus altifalantes estão bem ligados e que o volume dos seus altifalantes está bem configurado. Se estiver a usar altifalantes externos, verifique o seguinte por favor:</para> +<itemizedlist> +<listitem +><para +>Verifique se os altifalantes estão ligados de forma apropriada ao seu computador (veja o seu manual de utilizador, se necessário).</para +></listitem> +<listitem +><para +>Se os seus altifalantes necessitarem de pilhas, substitua-as por novas.</para +></listitem> +<listitem +><para +>Se os seus altifalantes externos se ligarem à corrente, verifique se estão ligados na ficha, se esta está bem ligada à parte traseira dos altifalantes e se a tomada de parede está funcional.</para +></listitem> +<listitem +><para +>Se os seus altifalantes tiverem um botão de alimentação, certifique-se que este está ligado.</para +></listitem> +<listitem +><para +>Se os seus altifalantes tiverem um botão de volume, certifique-se que o volume está algures entre o desligado e o máximo.</para +></listitem> +</itemizedlist> + +<para +>Se os seus altifalantes fizerem parte da caixa do seu computador, verifique se estes têm um botão de volume. Se tiverem, certifique-se que está algures entre o desligado e o máximo.</para> + +<para +>Se tiver verificado tudo isto, poderá necessitar de alguma ajuda detalhada sobre a configuração de som no seu computador. Uma descrição completa de resolução de problemas está para além do âmbito deste manual, pelo que se recomenda ao utilizador consultar outros recursos na Internet. Algumas fontes de informação potenciais são:</para> + +<itemizedlist> +<listitem +><para +><ulink url="http://www.tldp.org/HOWTO/Sound-HOWTO/index.html" +>HOWTO de Som em Linux</ulink +>.</para +></listitem> +<listitem +><para +>A página Web da sua distribuição poderá ter um fórum de utilizadores para responder a perguntas.</para +></listitem> +<listitem +><para +>Publique uma dúvida num grupo de notícias da Usenet como o comp.os.linux</para +></listitem> +<listitem +><para +>Use um motor de busca para localizar outras pessoas que tenham tido problemas semelhantes aos seus.</para +></listitem> +</itemizedlist> +</sect1> + +<sect1 id="ts-othersoundsplay"> +<title +>O som de teste funcionou, mas não consigo ouvir o &CD;</title> +<para +>Até agora, verificou-se que o &kscd; e todos os níveis de mistura do &kmix; estão configurados correctamente. Tocou-se também um som de teste e você foi capaz de ouvir o som reproduzido. Isto sugere que o problema está limitado apenas ao &kscd; ou ao &CD;.</para> +<para +>Verifique se o &CD; consegue ser reproduzido. Se este for um &CD; novo, coloque-o noutro leitor de CDs (de preferência, que não pertença a um computador) e certifique-se se o &CD; consegue ser ouvido nesse dispositivo. Se funcionar de facto noutro dispositivo, continue <link linkend="ts-ddpback" +>aqui</link +>.</para> +</sect1> + +<sect1 id="ts-ddpback"> +<title +>Tente usar a reprodução digital directa</title> +<para +>Existem duas formas de os computadores pessoais poderem tocar um &CD;.</para> + +<para +>O primeiro método (que o &kscd; se refere como sendo a reprodução digital directa) é efectuado através da leitura dos dados digitais do &CD; com a Digital Audio Extraction (DAE - Extracção de Áudio Digital). Estes dados são enviados para o CPU da sua máquina, o qual converte os dados digitais para som. Este método necessita de um leitor de &CD;s que seja capaz de efectuar DAE (a maioria dos leitores novos são) e necessita de algum processamento de CPU para gerar os sons que ouvir.</para> + +<para +>O segundo método usa os circuitos internos disponíveis na maioria dos leitores de &CD;s para ler os dados e gerar os sons que irá ouvir, sem usar o CPU do seu computador. Estes dados são transmitidos por um cabo dedicado ligado directamente à placa de som do seu computador. Este método necessita de menos poder de processamento do CPU, mas obriga a que o cabo dedicado esteja ligado dentro do seu computador. Nem todos os computadores têm essa ligação.</para> + +<para +>O &kscd; usa por omissão o segundo método de reprodução. O próximo passo na resolução dos seus problemas com o &CD; é activar a reprodução digital directa. Para o fazer, comece por carregar no botão <guibutton +>Parar</guibutton +> na janela do &kscd;. Isto irá parar qualquer tentativa de ouvir o &CD; por agora.</para> + +<para +>De seguida, carregue no botão <guibutton +>Extras</guibutton +>. Isto irá abrir um pequeno menu. Seleccione a opção <guilabel +>Configurar o &kscd;...</guilabel +>. Isto irá abrir uma janela nova.</para> +<para +>Carregue no ícone <guilabel +>Leitor de CDs</guilabel +> do lado esquerdo da janela.</para> +<para +>Assinale a opção <guilabel +>Usar a reprodução digital directa</guilabel +>.</para> +<para +>Carregue em <guibutton +>OK</guibutton +>. </para> +<para +>Agora, carregue em <guibutton +>Tocar</guibutton +> na janela do &kscd; e verifique se o &CD; começa a tocar correctamente.</para> + +<para +>Se continua a não ouvir a música no &CD;, o seu problema necessita de conhecimento específico do seu sistema e dos problemas que obtém. O leitor deverá basear-se nos vários recursos bons da Internet para esta informação. Pense por favor em obter ajuda de uma das seguintes formas:</para> + +<itemizedlist> +<listitem +><para +>A página Web da sua distribuição poderá ter um fórum de utilizadores para responder a perguntas.</para +></listitem> +<listitem +><para +>Faça uma pergunta num grupo de notícias da Usenet, como o comp.os.linux ou num canal de IRC dos utilizadores do seu sistema operativo</para +></listitem> +<listitem +><para +>Use um motor de busca para localizar outras pessoas que tenham tido problemas semelhantes aos seus.</para +></listitem> +</itemizedlist> + +</sect1> + + +<sect1 id="ts-errorbox"> +<title +>Apareceu uma mensagem de erro</title> +<para +>Provavelmente, a mensagem de erro mais comum é esta:</para> +<screenshot> +<screeninfo +>Janela de erros</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd19.png" format ="PNG"/></imageobject> +<textobject +><phrase +>Janela de erros</phrase +></textobject> +</mediaobject> +</screenshot> + +<para +>A informação sobre a correcção desta janela é a secção de <link linkend="questions-and-answers" +>Perguntas e Respostas</link +> deste manual.</para> + +<para +>Se obtiver outra mensagem de erro, deverá publicar o texto da mensagem de erro num fórum da sua distribuição ou introduzir este erro num motor de busca, como o <ulink url="http://www.google.com" +>Google</ulink +>.</para> +</sect1> +</chapter> + +<chapter id="questions-and-answers"> +<title +>Perguntas e respostas</title> + +<qandaset> +<qandaentry> +<question +><para +>Eu vejo esta janela quando inicio o &kscd;. O que se passa de errado?</para> +<screenshot> +<screeninfo +>Janela de erros</screeninfo> +<mediaobject> +<imageobject +><imagedata fileref="kscd19.png" format ="PNG"/></imageobject> +<textobject +><phrase +>Janela de erros</phrase +></textobject> +</mediaobject> +</screenshot> +</question> +<answer +><para +>Isto significa que o &kscd; não conseguiu aceder à sua unidade de &CD-ROM;. O nome do dispositivo no campo <guilabel +>Dispositivo de &CD-ROM;</guilabel +> na <guilabel +>Configuração do Kscd</guilabel +> dever-se-á referir ao dispositivo de bloco associado com a sua unidade de &CD-ROM;. Este poderá ser uma ligação (simbólica ou real) para o dispositivo <acronym +>IDE</acronym +> (<filename +>/dev/hdx</filename +>) ou <acronym +>SCSI</acronym +> (<filename +>/dev/sdx</filename +>) apropriado.</para> + +<para +>O ficheiro do dispositivo normalmente pertence ao utilizador 'root' no grupo 'root', e não permite aos utilizadores normais acederem a ele para leitura, escrita ou execução directamente. Isto não tem <emphasis +>nada</emphasis +> a ver com o comando <application +>SUID</application +> (Set User <acronym +>ID</acronym +> - que usam a função <function +>setuid()</function +> da biblioteca-padrão do Un*x para assumir a identidade de outro utilizador) que é o <command +>mount</command +>, que não tem problemas nenhuns com as permissões; o &kscd; precisa de ser capaz de criar um descritor de ficheiro para se referir ao dispositivo de &CD; para controlar a unidade de &CD-ROM; e ler os dados em bruto a partir do disco.</para> + +<para +>Se você tiver a senha do 'root', poderá corrigir isto rápida e facilmente. Mude para 'root' e escreva <userinput +><command +>chmod</command +> <option +>a+r</option +> <filename +><replaceable +>/dev/cdrom</replaceable +></filename +></userinput +> para permitir a qualquer utilizador no seu sistema ler do dispositivo <filename +>/dev/cdrom</filename +>. Se a sua unidade de &CD-ROM; for outra qualquer, mude as permissões nesse dispositivo com o mesmo procedimento. Se não tiver a senha de 'root', peça ao seu administrador de sistemas para lhe dar permissões de leitura ao seu dispositivo de &CD-ROM;.</para> + +<para +>Veja também o capítulo sobre a <link linkend="configuring-kscd" +>configuração do KSCD </link +></para +></answer> +</qandaentry> + +<qandaentry +> +<question +><para +>Não consigo pôr o <acronym +>CDDB</acronym +> a funcionar. É possível obter alguma informação detalhada sobre o que se está a passar de errado?</para +></question +> +<answer +><para +>Se você estiver a ter problemas com a funcionalidade do <acronym +>CDDB</acronym +> tente iniciar o &kscd; a partir da linha de comandos com a opção <option +>-d</option +> e veja o resultado da depuração.</para +></answer +> +</qandaentry> +</qandaset> +</chapter> + +<chapter id="credits-and-license"> +<title +>Créditos e licenças</title> + +<para +>&kscd; com 'copyright' 1997,1998 de &Bernd.Johannes.Wuebben; &Bernd.Johannes.Wuebben.mail;</para> + +<para +>O &kscd; contém código de: </para> +<itemizedlist> +<listitem +><para +><application +>workman</application +> 1.4 beta 3 Copyright (c) Steven Grimm <email +>koreth@hyperion.com</email +></para +></listitem> +</itemizedlist> + + +<para +>Muito obrigado ao Ti Kan e ao Steve Scherf, os inventores do conceito da base de dados do <acronym +>CDDB</acronym +>. Vá a <ulink url="http://www.cddb.com/" +>http://www.cddb.com</ulink +> para obter mais informações sobre o <acronym +>CDDB</acronym +>.</para> + +<para +>Um especial agradecimento também a David White que fez a documentação original de ajuda do &kscd;. Belo trabalho, David!</para> + +<para +>Documentação actualizada para o KDE 2.0, e 'copyright' de &Jonathan.Singer; &Jonathan.Singer.mail;</para> + +<para +>Documentação actualizada para o KDE 3.4 e 'copyright' de &Mike.McBride; &Mike.McBride.mail;</para> + +<para +>Tradução de José Nuno Pires <email +>jncp@netcabo.pt</email +></para +> +&underFDL; &underGPL; </chapter> + +<appendix id="installation"> +<title +>Instalação</title> + +<sect1 id="how-to-obtain-kscd"> +<title +>Como obter o &kscd;</title> +&install.intro.documentation; </sect1> + +<sect1 id="requirements"> +<title +>Requisitos</title> + +<para +>Para poder compilar com sucesso o &kscd;, você precisa das últimas versões das bibliotecas do KDE, assim como da biblioteca de C++ &Qt;. Todas as bibliotecas necessárias, assim como o próprio &kscd; poderão ser encontradas no servidor de &FTP; do &kde; em &kde-ftp;.</para> + +</sect1 +> + +<sect1 id="compilation-and-installation" +> +<title +>Compilação e Instalação</title +> &install.compile.documentation; <para +>Por favor informe o responsável actual, Aaron Seigo, em &Aaron.J.Seigo.mail;, sobre qualquer modificação que você tenha efectuado para pôr o &kscd; a compilar na sua 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-pt/docs/tdemultimedia/kscd/kscd.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd.png Binary files differnew file mode 100644 index 00000000000..f4c705f26e8 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd11.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd11.png Binary files differnew file mode 100644 index 00000000000..efcb982aaef --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd11.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd12.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd12.png Binary files differnew file mode 100644 index 00000000000..ef99d1c5ea7 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd12.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd13.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd13.png Binary files differnew file mode 100644 index 00000000000..9cdfe9f97f3 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd13.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd14.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd14.png Binary files differnew file mode 100644 index 00000000000..b2fb2240d6d --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd14.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd16.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd16.png Binary files differnew file mode 100644 index 00000000000..0ea7fd18b74 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd16.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd18.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd18.png Binary files differnew file mode 100644 index 00000000000..f8201b4c7be --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd18.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd19.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd19.png Binary files differnew file mode 100644 index 00000000000..eaad05b8836 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd19.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd2.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd2.png Binary files differnew file mode 100644 index 00000000000..94e6497233d --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd2.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd3.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd3.png Binary files differnew file mode 100644 index 00000000000..e4692740c22 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd3.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd5.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd5.png Binary files differnew file mode 100644 index 00000000000..0de23bf5f26 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd5.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd6.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd6.png Binary files differnew file mode 100644 index 00000000000..24c7f2f5999 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd6.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscd9.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd9.png Binary files differnew file mode 100644 index 00000000000..d76fcbbb4c6 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscd9.png diff --git a/tde-i18n-pt/docs/tdemultimedia/kscd/kscdannounc.png b/tde-i18n-pt/docs/tdemultimedia/kscd/kscdannounc.png Binary files differnew file mode 100644 index 00000000000..271a9ad63d7 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/kscd/kscdannounc.png diff --git a/tde-i18n-pt/docs/tdemultimedia/noatun/Makefile.am b/tde-i18n-pt/docs/tdemultimedia/noatun/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/noatun/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdemultimedia/noatun/Makefile.in b/tde-i18n-pt/docs/tdemultimedia/noatun/Makefile.in new file mode 100644 index 00000000000..fc429f1a0a0 --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- 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-pt/docs/tdemultimedia/noatun/index.cache.bz2 b/tde-i18n-pt/docs/tdemultimedia/noatun/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..aa4cb103411 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/noatun/index.cache.bz2 diff --git a/tde-i18n-pt/docs/tdemultimedia/noatun/index.docbook b/tde-i18n-pt/docs/tdemultimedia/noatun/index.docbook new file mode 100644 index 00000000000..44e89db98f7 --- /dev/null +++ b/tde-i18n-pt/docs/tdemultimedia/noatun/index.docbook @@ -0,0 +1,642 @@ +<?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 % Portuguese "INCLUDE" +> <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> +<bookinfo> +<title +>Manual do &noatun;</title> + +<authorgroup> +<author +><firstname +>Charles</firstname +> <surname +>Samuels</surname +> <affiliation +> <address +><email +>charles@kde.org</email +></address> +</affiliation> +</author> +<othercredit role="translator" +><firstname +>Rui</firstname +><surname +>Branco</surname +><affiliation +><address +><email +>freedebian@netcabo.pt</email +></address +></affiliation +><contrib +>Tradução</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; plug-in completo baseado num leitor multimédia para KDE;.</para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>Noatun</keyword> +<keyword +>tdemultimedia</keyword> +<keyword +>mp3</keyword> +<keyword +>música</keyword> +<keyword +>multimédia</keyword> +</keywordset> +</bookinfo> + +<chapter id="introduction"> +<title +>Introdução</title> + +<para +>&noatun; plug-in completo baseado num leitor multimédia para KDE;.</para> + +<sect1 id="features"> +<title +>Características</title> + +<para +>&noatun; é um elaborado interface visual para o sintetizador analógico em tempo real &arts;. Para adicionar objectos adicionais, vá a <ulink url= "http://noatun.kde.org/plugins/" +> http://noatun.kde.org/plugins.phtml</ulink +>, ou a <ulink url="http://mpeglib.sf.net" +>http://mpeglib.sf.net</ulink +>. Por omissão o &arts; suporta os formatos MP3 e MPEG-1. O formato Vorbis é igualmente suportado se as livrarias do Vorbis tiverem sido disponibilizadas durante a compilação do &kde;. </para> + +</sect1> +</chapter> + +<chapter id="using-noatun"> +<title +>Utilizar o &noatun;</title> + +<para +>&noatun;, por omissão é iniciado com um excelente 'plugin' de interface para o utilizador. Este 'plugin' foi escolhido pelo facto de ser similar a maior parte das outras aplicações do KDE.</para> + +<para +>&noatun; é único por não existirem duas instalações iguais e por não ter um interface standard, no entanto existe um por omissão. Terá a liberdade de juntar e ajustar a sua selecção de 'plugins' e personalizar o &noatun; até que se torne no seu leitor de multimédia ideal! </para> + +<sect1 id="title-format"> +<title +>Formato do Título</title> +<para +>A janela de preferências do &noatun; possuí uma caixa de texto <guilabel +>Formato do Título</guilabel +> estranha. Poderá introduzir um formato de cadeia de texto para personalizar a forma como o formato aparece. </para> + +<itemizedlist> +<listitem +><para +>Qualquer texto aparece de um modo normal, a não ser que esteja entre <literal +>$( )</literal +>.</para +></listitem> +<listitem +><para +>O texto entre <literal +>$( )</literal +> irá utilizar a propriedade do &noatun; para esse mesmo item, e irá substituí-lo pelo texto dado.</para +></listitem> +<listitem +><para +>Se entre <literal +>$( )</literal +> existem aspas, esse texto será apresentado normalmente, mas apenas se a propriedade desse nome existir.</para +></listitem> +<listitem +><para +>As aspas podem estar no início do <literal +>$( )</literal +>, no final, ou em ambos em simultâneo.</para +></listitem> +</itemizedlist> + +<para +>Por exemplo, <literal +>$(bitrate)</literal +> é substituído pelo bitrate do ficheiro, tal como o 'plugin' Metatag o carrega. No entanto, se inserir aspas naquele campo, o texto entre aspas, será mostrado: <literal +>$(bitrate"kbps")</literal +> dará informação sobre o bitrate, do ficheiro, seguido pelos caracteres <literal +>"kbps" </literal +>, por exemplo. Não será mostrado no entanto se a propriedade <quote +>bitrate</quote +> não existir. </para +> +</sect1> + +</chapter> + +<chapter id="using-noatun-plugins"> +<title +>manual do &noatun; 'Plugins'</title> + +<para +>Poderá seleccionar diferentes 'plugins' indo ao menu <guimenuitem +>Configuração</guimenuitem +>, e seleccionando <guimenuitem +>Configurar &noatun;...</guimenuitem +>. Vá á página <guilabel +>Plugins</guilabel +> através da selecção do item adequado da lista. Então poderá activar os 'plugins' seleccionando a caixa correspondente ao seu nome. &noatun; requer pelo menos um 'plugin' de interface do utilizador, e um 'plugin' de lista de média. </para> + +<sect1 id="milk-chocolate"> +<title +>Leite com Chocolate</title> + +<para +>Milk Chocolate é uma interface para o utilizador simples e pequena. Os botões comportam-se como um leitor de CD, onde o botão de <guiicon +>ejectar</guiicon +> abre a lista de média. A <guiicon +>página com cruz</guiicon +> remove a lista de média actual, mas não apaga o ficheiro do disco, e o botão de <guiicon +>seta</guiicon +> activa o modo de repetição. Um menu está disponível através do &RMB; clicando em qualquer parte da janela.</para> + +</sect1> + +<sect1 id="young-hickory"> + +<title +>Young Hickory</title> + +<para +>Young Hickory é um 'plugin' para a Bandeja do Sistema do &kde;, a área junto ao relógio, por omissão.</para> + +<para +>Ao clicar no ícone &RMB; é mostrado um pequeno menu, e ao clicar em &LMB; dará visibilidade à sua janela de interface de utilizador &noatun;. Note que as listas de média por exemplo, não são consideradas como interfaces de utilizador.</para> + +</sect1> + +<sect1 id="html-exporter"> +<title +><acronym +>HTML</acronym +> Exportar Lista de Média</title> + +<para +>Este 'plugin' colocará a lista de média numa elegante tabela <acronym +>HTML</acronym +>. A página de preferências dá a possibilidade de selecção de cores, imagem de fundo, e activa o modo 'Hover', para mudança de cores quando o cursor esta sobre um 'link'.</para> + +<para +>Depois de escolher as opções, o menu <guimenu +>Acções</guimenu +>, <guimenuitem +>Exportar Lista de Reprodução...</guimenuitem +> abrirá um diálogo de ficheiro para que seleccione o destino de gravação do ficheiro de saída. </para> + +</sect1> + +<sect1 id="kjofol-skin"> +<title +><application +>K-Jöfol</application +> 'Skins'</title> + +<para +>O carregador de estilo K-Jöfol do &noatun;, é uma reimplementação de um programa do Windows com o mesmo nome.</para> + +<para +>A implementação do &noatun; tem infelizmente algumas limitações. Por exemplo os estilos tem que ser previamente descomprimidos para o disco para que sejam carregados.</para> + +<para +>Para instalar um estilo (formato ZIP, no &Windows;) poderá usar o carregador de estilos que se encontra na caixa de diálogo das preferências do &noatun;.</para> + +<para +>Pelo facto de alguns estilos não estarem devidamente empacotados e do carregador de estilos não adivinhar tudo, poderá ainda seguir os seguintes comandos se uma determinada instalação de um estilo falhar:</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 +> (se necessário) +<prompt +>%</prompt +> <userinput +><command +>cd</command +> <option +>kjskins</option +></userinput> +<prompt +>%</prompt +> <userinput +><command +>mkdir</command +> <option +>nova estilo</option +> ; <command +>cd</command +> <replaceable +>novo estilo</replaceable +></userinput> +<prompt +>%</prompt +> <userinput +><command +>unzip</command +> <replaceable +>/caminho/para/novo_estilo.zip</replaceable +></userinput +></screen> + +<para +>Pode também criar os seus próprios estilos com a ajuda do tutorial <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 +>A Split Playlist (Lista Dividida)</title> + +<para +>A Split Playlist possui um design simples e clássico. Um duplo clique em qualquer entrada da lista irá accioná-la (do mesmo modo seleccionando-a e premindo <keycap +>Enter</keycap +>). Poderá arrastar ficheiros bem como &URL;s. </para> + +<para +>Tal como o &kde; 3.0, o Split Playlist (<acronym +>SPL</acronym +>) guarda a informação em formato &XML;, importante automaticamente a lista <acronym +>m3u</acronym +> se o ficheiro &XML; não existir. Isto significa que poderá modificar o ficheiro m3u, e apagar o ficheiro &XML; para automaticamente gerar listas de média. </para> + +<para +>O nome Split Playlist é um pouco enganador, na medida em que a lista não está realmente dividida. Este nome resulta do seu design original (remontando aos primeiros dias do &noatun;) onde estava realmente dividida. </para> +</sect1> + +<sect1 id="winampskin"> +<title +>Estilos do Winamp</title> +<para +>Se estiver a usar o estilo <trademark +>Winamp</trademark +>, por certo já deverá ter reparado que lhe é familiar. Clicando no contador horário seleccionará o modo de contagem crescente ou decrescente. Ao clicar a área do gráfico irá activar ou desactivar o mesmo. Poderá também fazer um duplo clique na barra de título para activar o modo de sombra do Windows. Com o botão <mousebutton +>direito</mousebutton +> (ou clicando no ícone superior esquerdo irá ser mostrada a barra de ferramentas standard do &noatun;. </para> +<para +>Poderá instalar novos estilos em <filename class="directory" +>$KDEHOME/share/apps/noatun/skins/winamp</filename +>, criando uma directoria para as guardar, e extraindo o estilo de seguida para a mesma directoria. Os ficheiros de estilo <trademark +>Winamp </trademark +> com a extensão <literal role="extension" +>.wsz</literal +> podem ser tratados como ficheiros zip normais. Poderá no entanto ter que os renomear primeiro para que os possa descomprimir. </para> +</sect1> + +<sect1 id="metatag"> +<title +>Metatag</title> +<para +>Metatag é um 'plugin' que carrega a informação respectiva a um ficheiro através do KDE, o mesmo mecanismo é usado no &konqueror; quando passa com o rato por cima de um qualquer ficheiro. Além de carregar informação, também suporta edição através de <guimenu +>Acções</guimenu +> menu subitem <guimenu +>Editor de Marcas</guimenu +>. Suporta edição de tags <acronym +>ID3</acronym +>, bem como de tags OggVorbis. Lê também a taxa de bits dos ficheiros. </para> +</sect1> + +<sect1 id="keyz"> +<title +>Keyz</title> +<para +>Carsten Pfeiffer decidiu quebrar com a longa tradição do &noatun; de criação de nomes o mais incorrectos possíveis 'plugins', como ficou provado tanto pelos 'plugins' Milk-Chocolate, Young Hickory, e muitos mais outros. Do que vale apenas convergir do S para um Z? Parece algo que os falantes de Inglês-Americano fariam! </para> +<para +>Contudo, apenas pelo facto de o nome não ser original não significa que é um fraco 'plugin'. Pleo contrário, este permite a atribuição de teclas de atalho para algumas acções do &noatun;. A verdadeira beleza nestas teclas de atalho, é que funcionam de qualquer lado, e não apenas dentro do &noatun;. Assim pode finalmente valer a pena os <quote +>Teclados Multimédia</quote +>. </para> +</sect1> + +<sect1 id="ir-control"> +<title +>Controlo por Infravermelhos</title> +<para +>Se tiver um controlo por Infravermelhos no seu computador (tais como os da televisão com sintonizadores <trademark class= "registered" +>Brooktree</trademark +>), e o seu controlo for suportado por <ulink url="http://www.lirc.org" +>LIRC</ulink +>, então deverá funcionar. Tal como Keyz, o nome é muito insípido, mas o 'plugin' permite-lhe atribuir acções a cliques de botões. </para> +<para +>Para atribuir acções a um botão, carregue o 'plugin', vá á página de Controle do controlo por Infravermelhos na janela de configuração do &noatun;. Seleccione o botão da lista e escolha a acção a associar da 'combo box' abaixo. Se numa acção como por exemplo o controle de volume, quiser efectuar a acção repetidamente, active a caixa e seleccione o intervalo entre acções. </para> +<para +>Se tiver uma placa <acronym +>TV</acronym +>, um truque conveniente é atribuir o botão <guibutton +>Mudo</guibutton +> à acção Pausa, permitindo assim tirar o som ao painel da sua aplicação de <acronym +>TV</acronym +>, enquanto pausa o &noatun;, e vice-versa, isto é particularmente útil no caso de anúncios publicitários. </para> +</sect1> +</chapter> + +<chapter id="questions-answers-and-tips"> + +<title +>Perguntas, Respostas e Dicas</title> + +<qandaset id="faq"> +<title +>Perguntas mais frequentes</title> +<qandaentry> +<question> +<para +>A música tem muitas falhas quando se movimenta janelas.</para> +</question> +<answer> +<para +>Você pode ter aumentar o 'buffer' do &arts; do seguinte modo: </para +> + +<itemizedlist +> +<listitem +><para +>Inicie o &kcontrol;</para +></listitem> +<listitem +><para +>Vá ao grupo <guilabel +>Som</guilabel +></para +></listitem +> +<listitem +><para +>Vá à secção <guilabel +>Servidor de Som</guilabel +></para +></listitem +> +<listitem +><para +>Aumente o tempo de resposta —, 384ms é normalmente suficiente para a maioria dos computadores.</para +></listitem +> +</itemizedlist +> + +<para +>Poderá também considerar correr o servidor de som em prioridade de tempo real se o tempo de resposta não ajudar. Tenha atenção que isto pode provocar um bloqueio no sistema. </para +> + +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>Não posso remover a lista de média ou a interface de utilizador da lista de 'plugins'.</para> +</question> +<answer> +<para +>Já que o &noatun;necessita de pelo menos uma interface para o utilizador carregada e uma lista de média, você terá que adicionar um 'plugin' de interface antes de remover o antigo. Adicionar uma nova lista de média removerá automaticamente a antiga. </para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>Onde posso obter mais 'plugins' ?</para> +</question> +<answer> +<para +>Os programadores de programas de terceiros podem submeter os seus 'plugins' em <ulink url="http://noatun.kde.org/plugins/" +> &noatun; web-site</ulink +>, local onde podem ser descarregados por você, utilizador. </para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>Como posso construir um 'plugin' para o &noatun;?</para> +</question> +<answer> +<para +>A documentação , em modo <acronym +>API</acronym +>, e exemplo de código fonte estão disponíveis no site <ulink url="http://noatun.kde.org" +>&noatun;</ulink +>. Do mesmo modo, e no espírito do software de código aberto o código fonte do &noatun; e todos os 'plugins' de defeito estão disponíveis. </para> +</answer> +</qandaentry> +</qandaset> +</chapter> + +<chapter id="credits-and-licenses"> +<title +>Créditos e Licenças</title> + +<para +>Direitos do programa 2000-2002 Charles Samuels <email +>charles@kde.org</email +></para> + +<para +>Direitos da documentação 2002 Charles Samuels <email +>charles@kde.org</email +></para> + +<para +>O &noatun; foi trazido a você pelas seguintes pessoas:</para> + +<itemizedlist> +<listitem> +<para +>Charles Samuels <email +>charles@kde.org</email +></para> +</listitem> +<listitem> +<para +>Neil Stevens <email +>multivac@fcmail.com</email +></para> +</listitem> +<listitem> +<para +>Stefan Westerfeld <email +>stefan@space.twc.de</email +></para> +</listitem> +<listitem> +<para +>Martin Vogt <email +>mvogt@rhrk.uni-kl.de</email +></para> +</listitem> +<listitem> +<para +>Malte Starostik <email +>malte.starostik@t-online.de</email +></para> +</listitem> +<listitem> +<para +>Nikolas Zimmermann <email +>wildfox@kde.org</email +></para> +</listitem> +<listitem> +<para +>Stefan Schimanski <email +>1Stein@gmx.de</email +></para> +</listitem> +</itemizedlist> +<para +>Tradução de Rui Branco <email +>freedebian@netcabo.pt</email +></para +> +&underFDL; &underBSDLicense; </chapter> + +<appendix id="installation"> +<title +>Instalação</title> + +<sect1 id="how-to-obtain-Noatun"> +<title +>Como obter o &noatun;</title> +&install.intro.documentation; </sect1> + +<sect1 id="requirements"> +<title +>Requisitos</title> + +<para +>&noatun; requer no mínimo um Pentium 200 com &Linux;, um PowerPC com &Linux; 2.4.1 ou superior, ou outras plataformas. Suporte para mais plataformas será disponibilizado em breve.</para> + +<para +>Para que uma plataforma seja facilmente suportada, terá que ter suporte 'pthread', e o sistema de saída de som <acronym +>OSS</acronym +>, no entanto o sistema <acronym +>ALSA</acronym +> é suportado no &Linux;.</para> + +</sect1> + +<sect1 id="compilation-and-installation"> +<title +>Compilação e Instalação</title> +&install.compile.documentation; <para +>Se se deparar com algum problema, por favor reporte ao autor em <email +>charles@kde.org</email +>.</para> + +<para +>Se tem esta documentação, provavelmente já terá compilado o &noatun;</para> + +</sect1> + +</appendix> + +<glossary id="glossary"> +<title +>Glossário</title> + +<glossentry id="gloss-mc"> +<glossterm +>Milk Chocolate</glossterm +><glossdef> +<para +>Milk Chocolate é um 'plugin' de interface de utilizador simples e minimalista </para +></glossdef +></glossentry> + +<glossentry id="gloss-arts"> +<glossterm +>&arts;</glossterm +><glossdef> +<para +>&arts; é um sintetizador analógico em tempo real. Uma estrutura de média poderosa utilizada pelo &noatun; </para +></glossdef +></glossentry> +<glossentry id="gloss-kj"> +<glossterm +>K-Jöfol</glossterm +><glossdef> +<para +>Este 'plugin' carrega estilos originalmente usadas num leitor de média do &Windows; com o mesmo nome. </para +></glossdef +></glossentry> + +<glossentry id="gloss-keyz"> +<glossterm +>Keyz</glossterm +><glossdef> +<para +>Keyz permite-lhe atribuir teclas a acções no &noatun; </para +></glossdef +></glossentry> +<glossentry id="gloss-young-hickory"> +<glossterm +>Young Hickory</glossterm +><glossdef> +<para +>Young Hickory é um 'plugin' da barra de sistema. </para +></glossdef +></glossentry> +<glossentry id="gloss-kaiman"> +<glossterm +>Noatun</glossterm +><glossdef> +<para +>Kaiman é um 'plugin' que carrega estilos do leitor de média GQMPEG. Kaiman é um predecessor do &noatun;, foi distribuído com o &kde; para o &kde; 2.0. Quando o &noatun; foi introduzido no &kde; 2.1, o carregador de estilos Kaiman tornou-se num 'plugin' do &noatun;. </para +></glossdef +></glossentry> + +</glossary> + +&documentation.index; +</book> + |