<!-- <?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>