Stand: 11.06.02

==============================================================================
 Sound-Untersttzung
==============================================================================

Der Server schickt dem Client eine Liste von primren und sekundren Tags fr
bestimmte Ereignise. Die "primren" werden vom aktuellen Modpack bevorzugt;
die zugehrigen Sounds brauchen im Client nicht notwendigerweise vorhanden zu
sein. Die "sekundren" Tags sollten sich auf auf Standardsounds beziehen, die
in jeder Installation von Freeciv gleich sein sollten.

Tags werden benutzt, um das Wechseln der Sounds zu erleichtern. Dabei wird ein
sog. specfile benutzt, in dem festgelegt wird, welcher Sound zu welchem Tag
gehrt. ndert man das specfile, z.B. als Parameter beim Start des Clients, so
ndern sich auch die Sounds. Der Aufruf

		civclient --Sound mysounds.spec

fhrt dazu, das der Client die Sounddateien aus der datei "mysounds.spec"
liest. Die Sounds mssen dazu in das in der Datei zuerst genannte Verzeichnis
kopiert werden, oder die specdatei muss angepasst werden. Alle Pfade sind
dabei relativ zum Verzeichnis data/. Soundpakete knnen von der
Freeciv-Webseite im tar-Format heruntergeladen werden. Diese mssen dann
entweder mit z.B. "tar -xzvf stdsoundsX.tar.gz" (Unix) oder mit WinZip
(Windows) in das Verzeichnis data/ entpackt  werden.

In CVS-Versionen sind weder Sounds noch ein specfile enthalten. Soundsets
(Sounds und ein specfile) knnen von 
	
	<ftp://ftp.freeciv.org/freeciv/contrib/sounds/> 

herunter geladen werden. Hier gibt es auch weitere Soundateien, um
existierende Soundsets zu verndern oder neue zu erstellen.

================================
 Plugins
================================

Die Sound-Ausgabe wird vom Client mit Plugins erledigt. Welche Plugins
vorhandene sind, hngt davon ab, welche Libraries auf dem Rechner installiert
sind. Das Plugin, das der Client zur Soundausgabe benutzen soll, kann via
Kommandozeile gewhlt werden:
		
		civclient --Plugin sdl

Mit "none" wird die Soundausgabe abgeschaltet. Freeciv untersttzt zur Zeit
die folgenden Plugins:
	- keine Ausgabe (--Plugin none)
	- Esound (--Plugin esd)
	- SDL mit der SDL_mixer-Library (--Plugin sdl)

Um Untersttzung fr ein neues Plugin zu Freeciv hinzuzufgen, mssen
folgende Dateien verndert werden ("plugin" bezeichnet dabei den Namen des
des neuen Plugins):

		confgiure.in				/* Hinzufgen eines neuen Tests */
		acconfig.h					/* Hinzufgen einer neuen config metavariablen */
		client/audio.c				/* das neue Plugin einfgen */
		client/Makefile.am			/* die folgenden Dateien einfgen */
		client/audio_plugin.c		/* das neue Plugin */
		client/audio_plugin.h		/* die Headerdatei des neuen Plugins */

================================
 Tags
================================

Es gibt zwei Arten von Soundtags:
 - Tags, die im ruleset definiert sind
 - Tags, die im Programm definiert sind


Whrend die ersten frei gewhlt werden knnen, knnen die letzteren nicht
verndert werden.

Die Soundtags, die zu Erweiterungen (Weltwundern und normale Gebuden),
Bewegungen von Einheiten und Kmpfen zwischen Einheiten gehren, mssen im
Ruleset festgelegt werden. Freeciv gibt diese Tags weiter an den Client, der
sie mit Hilfe der soundspec Datei in Dateinamen bersetzt. Jede
soundspec-datei sollte allgemeine Soundtags fr Weltwunder ("w_generic"),
normale Gebude ("b_generic"), Bewegung von Einheiten ("m_generic") und Kmpfe
zwischen Einheiten ("f_generic") definieren.

Zu bestimmten Ereignissen gibt es Soundtags, die im Code von Freeciv verankert
sind und nicht von auen konfiguriert werden knnen. In der soundspec Datei
mssen belegungen fr diese Tags vorhanden sein. Eine komplette Liste dieser
Tags findet sich in data/stdsounds.spec. Der Name des Tags ist der Name des
enums (siehe common/events.h) in Kleinbuchstaben. Z.B. wird aus E_POLLUTION
das Tag "e_pollution". Es gibt kein allgemeines Tag und es wird kein
alternatives tag benutzt.

Im Spiel gibt es im Moment nur eine Hintergrundmelodie: das Intro. Das Intro
luft bis das Spiel beginnt. Das Tag fr diese Musik ist "music_start".

================================
 TODO
================================

Es gibt ein paar Dinge, die noch getun werden mssen, um die
Sounduntersttzung in Freeciv noch zu verbessen:
  * Hinzufgen von weitere Plugins (gstreamer, arts, windows, usw.)
  * Hinzufgen von tags fr jedes Forschungsergebnis, wie fr
  	Gebude/Einheiten
  * Untersttzung von Sounddateien im .ogg-Format
  * mehr Ereignistags
  * neue/bessere Sound-Samples und bessere spec-Datei

================================
 Sonstiges
================================

Ersteller von Sounds: Die Dateien sollten bitte klar benamst sein. Auerdem
sollte eine README vorhanden sein, in der die verwendete Lizenz fr die
Sounds aufgefhrt wird (falls Publich Domain, bitte erwhnen)

Ersteller von Modpacks: Die sekundren Tags sollten sich auf Standardtags
beziehen, soda die, die nicht das neueste und beste Soundpacket haben, das
Spiel immer noch genieen knnen.
