Sndctl-plugin
Aus VDR Wiki
Inhaltsverzeichnis |
Beschreibung
Autor: Thomas Hildebrandt
Dieses Plugin wurde inspiriert und neuentwickelt aus dem avolctl-plugin von Martin Prochnow (vielen Dank dafür). Es steuert die Lautstärke verschiedener Regler der Soundkarte in Abhängigkeit von der Lautstärkeregelung des VDR.
Diese Anforderung allein ist durch das avolctl-plugin bereits gut abgebildet. Darüberhinaus kann es jedoch verschiedene Wege geben, wie die Regler der Soundkarte von der VDR-Lautstärke abhängen. Diese Wege (oder Profile) nenne ich Soundsets.
Ein Soundset für 'normales' Stereo unterscheidet sich von einem Dolby Digital Soundset, sprich, andere Soundkarten-Regler bewegen sich, wenn sich die VDR-Lautstärke ändert.
Mit sndctl lassen sich beliebig viele Soundsets anlegen, zwischen denen aus dem VDR-Menü umgeschaltet werden kann.
Status
Version:
- 0.0.1
Initiale Version (Konfiguration der Soundsets nur manuell)
Kompiliert und getestet unter:
Bedienung
Im VDR-Hauptmenü gibt es einen Eintrag Soundcontrol. Dieser liefert eine Liste der derzeit konfigurierten Soundsets; das jeweils gewünschte läßt sich durch Ok aktivieren.
Hardwareanforderungen
- von ALSA unterstützte Soundkarte
Softwareanforderungen
Installation
Source
cd $SOURCEDIR tar xzf vdr-sndctl-<VERSION>.tgz ln -sf sndctl-<VERSION> sndctl make plugins make install-plugins
Konfiguration
Einstellungen
Es gibt in Version 0.0.1 noch keine Konfigurationsseite für die Soundsets... sorry. Alle Konfigurationen müssen in VDR's setup.conf getan werden. (Tu das nur, wenn VDR NICHT läuft, alle Arbeit könnte sonst umsonst gewesen sein.)
Beispiel:
sndctl.s1000_name = Aus sndctl.s1001_name = Stereo sndctl.s1001_Bass = =40 sndctl.s1001_Center = =0 sndctl.s1001_Front = =0 sndctl.s1001_LFE = =0 sndctl.s1001_Line = =80 sndctl.s1001_Master = =80 sndctl.s1001_PCM = =0 sndctl.s1001_Surround = =0 sndctl.s1001_Treble = =60 sndctl.s1002_name = Movie sndctl.s1002_Bass = =40 sndctl.s1002_Center = +0 sndctl.s1002_Front = +0 sndctl.s1002_LFE = -20;1 sndctl.s1002_Line = =0 sndctl.s1002_Master = =100 sndctl.s1002_PCM = =74 sndctl.s1002_Surround = -20;1 sndctl.s1002_Treble = =60
Du siehst die Definition dreier Soundsets mit den Namen 'Aus', 'Stereo' und 'Movie'.
Ein wenig Erklärung:
- sndctl.s1001_name = Stereo
Das ist der Name für das Soundset mit der ID 's1001'.
- sndctl.s1001_Master = =80
Konfiguration fuer den Soundkarten-Regler 'Master' Erklaerung: bei jeder Aenderung der VDR Lautstaerke wird der Regler Master der Soundkarte auf 80% seines Maximalwertes gesetzt
- sndctl.s1002_Center = +0
Konfiguration fuer den Soundkarten-Regler 'Center' Erklaerung: bei jeder Aenderung der VDR Lautstaerke wird der Regler Center der Soundkarte auf den Wert der VDR Lautstaerke plus 0 gesetzt (sprich: die Lautstaerke folgt direkt der VDR Lautstaerke)
- sndctl.s1002_LFE = -20;1
Konfiguration fuer den Soundkarten-Regler 'LFE' (Bassbox ;-) ) Erklaerung: bei jeder Aenderung der VDR Lautstaerke wird der Regler LFE der Soundkarte auf den Wert der VDR Lautstaerke minus 20 gesetzt, aber geht nie unter den Wert 1 (nur bei VDR Lautstaerke 0 geht der LFE auch auf 0)
Tipps
- die Namen der Soundkartenregler gibt's z.B. mit 'alsamixer'
- die VDR Lautstärke geht von 0 bis 255; sndctl rechnet mit 0 bis 100
- die folgenden Operationen (erstes Zeichen) sind möglich:
- ~ > gar nichts tun (so ein Regler wird aus den Parametern entfernt)
- = > Regler wird immer auf denselben Wert gesetzt (gut für 'Bass' und 'Treble' oder um einen Regler "still"zulegen)
- + > Regler bekommt die VDR Lautstärke, erhöht um diesen Wert
- - > Regler bekommt die VDR Lautstärke abzüglich dieses Wertes
- % > Regler bekommt x Prozent vom VDR Lautstärke-Wert
- falls dein VDR nicht mit root-Rechten läuft, benötigt der VDR user Rechte für den Zugriff auf den Mixer der Soundkarte; evt. muss der VDR user Mitglied der Gruppe 'audio' sein