# Guia de Desenvolvimento do &amarok;

Se estiver interessado em ajudar no desenvolvimento do &amarok;, contribuindo com código, gráficos, documentação ou outra coisa qualquer, por favor não hesite e escreva para amarok-devel@lists.sourceforge.net ou visite-nos no IRC, no canal: #amarok, rede: irc.freenode.net.

Poderá também subscrever-se na nossa lista de correio e assista ao progresso enquanto adiciona alguns comentários valiosos :)

A sua contribuição ou reacção será mais do que bem-vinda. Estamos à espera de falar consigo :)

## Ficheiros de código do &amarok;

Os ficheiros estão listados em ordem alfabética, o que não é útil para a ordenação de prioridades. Os ficheiros importantes são o 'app.cpp', o 'playlist.cpp' e o 'playerwindow.cpp'.

Ficheiro | Utilização
--- | ---
actionclasses.cpp | Oferece um QPopupMenu que lista as opções de configuração do &amarok;, a opção para sair e um KHelpMenu para o &amarok; gravar, quando instancia vários menus de ajuda.
amarokconfig.cpp | KConfig-XT
amarokfilelist.cpp | Não utilizado actualmente. Irá ordenar KFileLists
app.cpp | Esta é a classe derivada da KApplication e que é mãe de vários objectos fundamentais para a execução do &amarok;, &eg; o motor, o DCOP, a bandeja do sistema, os elementos gráficos de topo, etc.
browserbar.cpp | Esta lida com os navegadores, com o item KMultiTabBar e com o repartidor personalizado.
browserwin.cpp | Um elemento contentor para a lista de reprodução, barra de ferramentas e barra de navegação, eventualmente até pode ser menos.
collectionbrowser.cpp | Em construção, biblioteca multimédia.
effectwidget.cpp | Um item gráfico para a configuração dos efeitos do motor.
enginecontroller.cpp | Uma interface entre o &amarok; e o motor.
fht.cpp | O FHT (ou, basicamente, o FFT) do &amarok; com a rotina para a análise do espectro.
filebrowser.cpp | O Navegador de Ficheiros.
kbookmarkhandler.cpp | Utilizado pelo Navegador de Ficheiros.
osd.cpp | Uma classe muito boa para a Visualização do Ecrã, que não é específica do &amarok; e é muito flexível.
playerwindow.cpp | Este é o pequeno item gráfico com o texto deslizante, o analisador e os botões para tocar/pausa/etc.
playlist.cpp | Um grande classe que implementa o elemento de lista de reprodução.
playlistbrowser.cpp | O Navegador de Lista de Músicas.
playlistitem.cpp | Derivador da KListViewItem, itens da lista de reprodução.
playlistloader.cpp | Irá ler recursivamente as directorias, KURLs e ficheiros de listas de músicas para o PlaylistWidget. Usa tarefas ('threads') para correr em segundo plano. Irá pedir ao motor para confirmar se poderá tocar os tipos de ficheiros desconhecidos.
pluginmanager.cpp | Gere o sistema de 'plugins' do &amarok;.
sliderwidget.cpp | O item personalizado da Barra Deslizante que é usado pelo PlayerWidget. É um candidato a ser reorganizado e passar a derivar de QSlider.
streambrowser.cpp | Um item que mostra as listagens das sequências obtidas dos meta-servidores.
systray.cpp | Bandeja do sistema do &amarok;. Pequena, compacta.
threadweaver.cpp | Uma classe flexível que irá colocar em espera, processar e despachar os resultados para as Tarefas numa tarefa do sistema ('thread') separada. É usada por uma variedade de componentes do &amarok;.
tracktooltip.cpp | Não está relacionada de facto com o PlaylistWidget. É usada pelo PlayerWidget para mostrar algumas informações sobre a faixa a tocar de momento.