Code/GIT
From TcosProject
| Languages: |
English • Español |
GIT Code
You can download all GIT code with:
git clone http://tcosproject.org/git/$$PACKAGE_NAME$$
Modules
http://tcosproject.org/cgit/cgit.cgi/
- initramfs-tools-tcos
- tcosmonitor
- tcosconfig
- tcosphpmonitor
Browse code with CGIT
Build packages
First download one module and do this:
$ cd MODULE_NAME $ make targz $ cd .. $ mkdir build $ tar -zxf MODULE_NAME-x.x.x.tar.gz -C build/ $ cd build/MODULE_NAME-x.x.x $ dpkg-buildpackage -rfakeroot -us -uc
You will obtain some deb files that can install with dpkg -i
Last changes in Repos
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: f6a2996e39f2bc3c5db7c60cc24918271fea9e58
Date: Fri, 17 May 2013 12:57:15 GMT
Commit diff
--- a/debian/control+++ b/debian/control @@ -87,7 +87,6 @@ Depends: tcos-core (>= 0.88.0),
openssl, gksu, python,- python-eggtrayicon | python-gnome2-extras,
python-gtk2, python-glade2,${python:Depends}, ${misc:Depends}, ${shlibs:Depends}
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: fcf6b6d22a44c5e65bc30dea20c450434003a29c
Date: Fri, 17 May 2013 12:53:37 GMT
Commit diff
--- a/debian/control+++ b/debian/control @@ -35,7 +35,6 @@ Depends: python,
python-xlib, python-ipaddr, python-ipy,- python-eggtrayicon | python-gnome2-extras,
python-dateutil, zenity, dbus,
--- a/tcos-volume-manager.py+++ b/tcos-volume-manager.py @@ -97,19 +97,8 @@ class TcosVolumeManager:
icon.set_tooltip( _("Tcos Sound levels on:\n%s") %(self.host) ) icon.connect("activate", self.on_tray_icon_press_event) else:- import egg.trayicon - icon = egg.trayicon.TrayIcon("TCOS_sound") - eventbox = gtk.EventBox() - icon.add(eventbox) - image=gtk.Image() - image.set_from_file (shared.IMG_DIR + "tcos-volume-32x32.png") - eventbox.add(image) - tips = gtk.Tooltips() # deprecated - - tips.set_tip(icon, ( _("Tcos Sound levels on:\n%s") %(self.host) )[0:79]) - tips.enable() - icon.show_all() - eventbox.connect("button_press_event", self.on_tray_icon_press_event) + shared.error_msg( _("ERROR: No tray icon support") ) + sys.exit(1)
from tcosmonitor.ping import PingPort
--- a/tcosmonitor/TcosTrayIcon.py+++ b/tcosmonitor/TcosTrayIcon.py @@ -170,22 +170,8 @@ class TcosTrayIcon:
self.statusIcon.set_tooltip( _("Tcos Devices") ) self.statusIcon.connect('popup-menu', self.popup_menu) else:- # based on http://www.burtonini.com/computing/notify.py - import egg.trayicon - icon = egg.trayicon.TrayIcon("TCOS") - eventbox = gtk.EventBox() - icon.add(eventbox) - #tcos-icon-32x32.png - image=gtk.Image() - image.set_from_file (tcosmonitor.shared.IMG_DIR + "tcos-devices-32x32.png") - eventbox.add(image) - tips = gtk.Tooltips() - - tips.set_tip(icon, ( _("Tcos Devices") )[0:79]) - tips.enable() - icon.show_all() - eventbox.connect("button_press_event", self.popup_menu2) - return + shared.error_msg( _("ERROR: No tray icon support") ) + sys.exit(1)
def popup_menu(self, widget, button, mtime):self.InitMenu()
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: 079f4c611afd8edf00cf1f047260fd9aaed2d016
Date: Fri, 17 May 2013 12:45:32 GMT
Commit diff
--- a/debian/control+++ b/debian/control @@ -110,7 +110,7 @@ Recommends: tcos-configurator,
dnsmasq | tcos-tftp-dhcp, tcosmonitor, tcosconfig, ltspfs,- fuse-utils, + fuse,
pulseaudio-esound-compat | esound Description: Base package for install a TCOS (Thin client) serverThis is a system for generating thin client hosts using initramfs.
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: e39a771afc006f9e03a3680ddbfa1e9ed376172b
Date: Wed, 17 Apr 2013 14:18:43 GMT
Commit diff
--- a/bin/get_xauth+++ b/bin/get_xauth @@ -25,7 +25,8 @@ export DISPLAY=:0
user=$(/usr/lib/tcos/tcos-last --user 2>/dev/null) home=$(getent passwd ${user} | head -1 | awk -F":" '{print $6}') if [ "$user" = "root" ]; then echo -n "error: root not allowed"; exit 1; fi-if [ -e "${home}/.Xauthority" ]; then +# test if file exists and not empty +if [ -s "${home}/.Xauthority" ]; then
XAUTHORITY=$home/.Xauthority else XAUTHORITY=$(find /tmp/ -name ".gdm*" -user ${user} 2>/dev/null | head -1)
--- a/xmlrpc/sh/screenshot.sh+++ b/xmlrpc/sh/screenshot.sh @@ -30,18 +30,8 @@ if [ -e /conf/tcos-run-functions ]; then
export XAUTHORITY=/root/.Xauthority else _www=/var/lib/tcos/standalone/www- #user=$(w | awk '{ if ($3 == ":0" || $2 == ":0") print $1 }') - user=$(/usr/lib/tcos/tcos-last --user 2>/dev/null) - home=$(getent passwd ${user} | head -1 | awk -F":" '{print $6}') - if [ "$user" = "root" ]; then echo -n "error: root not allowed"; exit 1; fi - if [ -e "${home}/.Xauthority" ]; then - export XAUTHORITY=$home/.Xauthority - else - XAUTHORITY=$(find /tmp/ -name ".gdm*" -user ${user} 2>/dev/null | head -1) - [ -z $XAUTHORITY ] && XAUTHORITY=$(xauth info 2>/dev/null | awk '/^Authority/ {print $3}') - [ -z $XAUTHORITY -o "$XAUTHORITY" = "/root/.Xauthority" ] && XAUTHORITY="$(find /var/run/gdm*/ -name auth-for-* -user ${user} 2>/dev/null | head -1)/database" - export XAUTHORITY - fi + export XAUTHORITY=$(get_xauth) +
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/lib/tcos beepoff="xset b off" beepon="xset b on"@@ -61,30 +51,6 @@ cd $_www
$($beepoff) scrot 'capture.jpg' -t $_thumb_size $($beepon)-# new Base64 getscreenshot don't need html files -exit 0 - -_files=$(ls *jpg) - - -cat << EOF > $_www/index.html - - -Screenshots - -
-Screenshots of $(hostname),
take on $(date)-
-EOF -for _file in $_files; do - echo "$_file
" >> $_www/index.html -done - -cat << EOF >> $_www/index.html - - -EOF - -echo -n "ok"exit 0+
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: 97da06ffaa8f9c610c2b8ddf208adf7269f1bf10
Date: Wed, 20 Mar 2013 21:54:25 GMT
Commit diff
--- a/bin/gentcos+++ b/bin/gentcos @@ -29,8 +29,10 @@ fi
# Multiarch DIR LIB_MULTIARCH=/usr/lib/-[ -e /usr/lib/i386-linux-gnu ] && LIB_MULTIARCH=/usr/lib/i386-linux-gnu/ -[ -e /usr/lib/x86_64-linux-gnu ] && LIB_MULTIARCH=/usr/lib/x86_64-linux-gnu/ +DEB_HOST_MULTIARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH 2>&1) +if [ -n "$DEB_HOST_MULTIARCH" ] && [ -e "/usr/lib/$DEB_HOST_MULTIARCH" ]; then + LIB_MULTIARCH="/usr/lib/$DEB_HOST_MULTIARCH" +fi
export LIB_MULTIARCH . /etc/tcos/tcos.conf
--- a/bin/tcos-buildchroot+++ b/bin/tcos-buildchroot @@ -319,6 +319,11 @@ if [ -e /etc/console-setup/cached*.kmap.gz ]; then
cp /etc/console-setup/cached*.kmap.gz ${TCOS_CHROOT}/etc/console-setup/ fi+if [ -e /etc/console-setup/cached_UTF-8_del.kmap.gz ]; then + mkdir -p ${TCOS_CHROOT}/etc/console-setup + cp /etc/console-setup/cached_UTF-8_del.kmap.gz ${TCOS_CHROOT}/etc/console-setup/ +fi +
cat << EOC | chroot ${TCOS_CHROOT} apt-get update apt-get $APT_OPTS dist-upgrade
--- a/hooks-addons/00main+++ b/hooks-addons/00main @@ -105,8 +105,8 @@ fi
# multiarch support mkdir -p $DESTDIR/etc/ld.so.conf.d/-[ -f /etc/ld.so.conf.d/i486-linux-gnu.conf ] && cpifexists /etc/ld.so.conf.d/i486-linux-gnu.conf /etc/ld.so.conf.d/ -[ -f /etc/ld.so.conf.d/x86_64-linux-gnu.conf ] && cpifexists /etc/ld.so.conf.d/x86_64-linux-gnu.conf /etc/ld.so.conf.d/ +MULTIARCH=$(basename $LIB_MULTIARCH) +[ -f "/etc/ld.so.conf.d/${MULTIARCH}.conf" ] && cpifexists "/etc/ld.so.conf.d/${MULTIARCH}.conf" /etc/ld.so.conf.d/
cpifexists /sbin/depmod /sbin/ cpifexists /etc/localtime /etc/@@ -119,12 +119,8 @@ touch $DESTDIR/etc/modules
mkdir -p $DESTDIR/usr/lib # multiarch support-LIB_DIR=/lib -if [ "$TCOS_ARCH" = "amd64" ]; then - [ -e /lib/x86_64-linux-gnu/libresolv.so.2 ] && LIB_DIR=/lib/x86_64-linux-gnu -elif [ "$TCOS_ARCH" = "i386" ]; then - [ -e /lib/i386-linux-gnu/libresolv.so.2 ] && LIB_DIR=/lib/i386-linux-gnu -fi +LIB_DIR=/lib/ +[ -e /lib/${MULTIARCH}/libresolv.so.2 ] && LIB_DIR=/lib/${MULTIARCH}
cpifexists ${LIB_DIR}/libresolv.so.2 /lib/
--- a/hooks-addons/04debug+++ b/hooks-addons/04debug @@ -37,7 +37,7 @@ if [ ! -e \${file} ]; then
echo "\${file} not found" exit 1 fi-[ -e /lib/ld-linux.so.2 ] && /lib/ld-linux.so.2 --list \$file -[ -e /lib64/ld-linux-x86-64.so.2 ] && /lib64/ld-linux-x86-64.so.2 --list \$file + +`ldd /sbin/mkfs | awk '/ld-linux/{print $1}'` --list \$file
EOF chmod +x $DESTDIR/bin/ldd
--- a/hooks-addons/13kbmap+++ b/hooks-addons/13kbmap @@ -23,9 +23,15 @@ else
fi # for new console-setup- if [ -f /etc/console-setup/cached*.kmap.gz ]; then + if [ -f /etc/console-setup/cached.kmap.gz ]; then
mkdir -p $DESTDIR/etc/console-setup- cp -ra /etc/console-setup/cached*.kmap.gz $DESTDIR/etc/console-setup/cached.kmap.gz + cp -ra /etc/console-setup/cached.kmap.gz $DESTDIR/etc/console-setup/cached.kmap.gz + fi + + # for new console-setup + if [ -f /etc/console-setup/cached_UTF-8_del.kmap.gz ]; then + mkdir -p $DESTDIR/etc/console-setup + cp -ra /etc/console-setup/cached_UTF-8_del.kmap.gz $DESTDIR/etc/console-setup/cached.kmap.gz
fi fi
--- a/hooks-addons/20alsa+++ b/hooks-addons/20alsa @@ -51,9 +51,7 @@ else
ALSA_LIB_DIR=/usr/lib/alsa-lib/- [ -d /usr/lib/x86_64-linux-gnu/alsa-lib ] && ALSA_LIB_DIR=/usr/lib/x86_64-linux-gnu/alsa-lib - [ -d /usr/lib/i386-linux-gnu/alsa-lib ] && ALSA_LIB_DIR=/usr/lib/i386-linux-gnu/alsa-lib - + [ -d $LIB_MULTIARCH/alsa-lib ] && ALSA_LIB_DIR=$LIB_MULTIARCH/alsa-lib
mkdir -p ${DESTDIR}/$ALSA_LIB_DIR[ -e $ALSA_LIB_DIR/libasound_module_pcm_pulse.so ] && \
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: c0b9b01af15602aaa8dd130b858fba8a687eccfd
Date: Wed, 02 Jan 2013 21:31:39 GMT
Commit diff
--- a/debian/changelog+++ b/debian/changelog @@ -1,3 +1,12 @@ +tcos (0.89.91) unstable; urgency=low + + * Disable udevadm divert, fail on old versions + * Fix pulseaudio parse version + * Fix some multiarch libs, fix modprobe list (closes #694870), + * Use glx-alternative mesa instead of fix-nvidia-ati + + -- Mario Izquierdo (mariodebian) Wed, 02 Jan 2013 22:28:39 +0100 +
tcos (0.89.90) unstable; urgency=low* debian/initramfs-tools-tcos.postrm:
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: 70b4d0a53456a23866190c5088fa4ad232ff50f2
Date: Fri, 22 Jun 2012 11:50:10 GMT
Commit diff
--- a/debian/changelog+++ b/debian/changelog @@ -1,3 +1,10 @@ +tcos-configurator (1.23) unstable; urgency=low + + * Update French translation (closes: #672865) + Thanks to Julien Patriarca + + -- Mario Izquierdo (mariodebian) Fri, 22 Jun 2012 13:48:59 +0200 +
tcos-configurator (1.22) unstable; urgency=low * tcos-configurator.desktop: change gksu with su-to-root
--- a/po/Makefile+++ b/po/Makefile @@ -1,4 +1,4 @@ -LANGUAGES=es pt_BR gl +LANGUAGES=es pt_BR gl fr
PACKAGE=tcos-configurator all:
--- /dev/null+++ b/po/fr.po @@ -0,0 +1,331 @@ +# Translation of tcos-configurator to french. +# Copyright (C) 2012, French l10n team +# This file is distributed under the same license as the tcos-configurator package. +# Julien Patriarca , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: tcos-configurator\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-11-21 19:41+0100\n" +"PO-Revision-Date: 2012-05-02 14:20+0100\n" +"Last-Translator: Julien Patriarca \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../tcos-configurator.glade:9 +msgid "TCOS Server configurator" +msgstr "Configurateur du serveur TCOS" + +#: ../tcos-configurator.glade:53 +msgid "Configure TCOS server" +msgstr "Configurer le serveur TCOS" + +#: ../tcos-configurator.glade:105 +msgid "DHCP net interface" +msgstr "Interface rseau pour DHCP" + +#: ../tcos-configurator.glade:150 +msgid "Start IP" +msgstr "adresse IP de dbut" + +#: ../tcos-configurator.glade:199 +msgid "End IP" +msgstr "adresse IP de fin" + +#: ../tcos-configurator.glade:318 ../tcos-configurator.glade:861 +#: ../tcos-configurator.glade:1140 +msgid "Commit changes" +msgstr "ajouter les changements" + +#: ../tcos-configurator.glade:357 +msgid "Boot mode" +msgstr "mode de dmarrage" + +#: ../tcos-configurator.glade:403 +msgid "Server IP" +msgstr "IP du serveur" + +#: ../tcos-configurator.glade:457 +msgid "" +"WARNING:\n" +"Detected dynamic IP" +msgstr "" +"AVERTISSEMENT:\n" +"IP dynamique dtecte" + +#: ../tcos-configurator.glade:484 +msgid "" +"configure this IP as static\n" +"(disable NetworkManager)" +msgstr "" +"configurer cette adresse IP en statique\n" +"(dsactive NetworkManager)" + +#: ../tcos-configurator.glade:516 +msgid "host" +msgstr "hte" + +#: ../tcos-configurator.glade:539 +msgid "Hostname prefix" +msgstr "prfixe pour le nom de machine" + +#: ../tcos-configurator.glade:606 +msgid "DHCP server" +msgstr "serveur DHCP" + +#: ../tcos-configurator.glade:639 +msgid "Numer of users to create" +msgstr "Nombre d'utilisateurs crer" + +#: ../tcos-configurator.glade:667 +msgid "Prefix" +msgstr "Prfixe" + +#: ../tcos-configurator.glade:722 +msgid "" +"Groups to add users\n" +"(use spaces to separate)\n" +"(default fuse)\n" +msgstr "" +"Groupes o ajouter les utilisateurs\n" +"(utilisez des espaces pour sparer)\n" +"(la valeur par dfaut est fuse)\n" + +#: ../tcos-configurator.glade:778 +msgid "user" +msgstr "utilisateur" + +#: ../tcos-configurator.glade:900 +msgid "Passwords are same string as username" +msgstr "" +"Les mots de passe sont les mmes chanes que les noms d'utilisateur" + +#: ../tcos-configurator.glade:934 +msgid "Remote users" +msgstr "Utilisateurs distants" + +#: ../tcos-configurator.glade:975 +msgid "enable autologin" +msgstr "activer l'ouverture de session automatique" + +#: ../tcos-configurator.glade:995 +msgid "" +"Autologin timeout\n" +"(in seconds)" +msgstr "" +"Expiration du dlai pour l'ouverture de session automatique\n" +"(en secondes)" + +#: ../tcos-configurator.glade:1046 +msgid "" +"Remote login\n" +"(required for TCOS)" +msgstr "" +"Connexion distance\n" +"(ncessaire pour TCOS)" + +#: ../tcos-configurator.glade:1076 +msgid "enable remote login" +msgstr "activer la connexion distance" + +#: ../tcos-configurator.glade:1212 +msgid "Autologin" +msgstr "Ouverture de session automatique" + +#: ../tcos-configurator.glade:1286 +msgid "Login manager" +msgstr "Gestionnaire d'identifiant" + +#: ../tcos-configurator.glade:1361 +msgid "Launch TcosConfig" +msgstr "Lancer TcosConfig" + +#: ../tcos-configurator.glade:1400 +msgid "" +"TcosConfig is a tool to generate TCOS network boot images. The images are " +"downloaded using PXE protocol.\n" +"\n" +"You can add or remove some tools in images and configure a lot of hardware " +"settings." +msgstr "" +"TcosConfig est un outil pour gnrer des images rseau amorables de TCOS. " +"Les images sont tlcharges en utilisant le protocole PXE.\n" +"\n" +"Vous pouvez ajouter ou supprimer certains outils dans les images et " +"configurer beaucoup de rglages matriels." + +#: ../tcos-configurator.glade:1435 +msgid "Boot images" +msgstr "Images amorables" + +#: ../tcos-configurator.glade:1492 +msgid "Autologin help" +msgstr "Aide pour la connexion automatique" + +#: ../tcos-configurator.glade:1516 +msgid "TCOS Autologin" +msgstr "Connexion automatique pour TCOS" + +#: ../tcos-configurator.glade:1541 +msgid "" +"TCOS can work in kiosk mode.\n" +"\n" +"All you need is to configure the hostnames with the same value " +"as usernames.\n" +"\n" +"Example:" +msgstr "" +"TCOS peut fonctionner en mode kiosque.\n" +"\n" +"Tout ce dont vous avez besoin est de configurer les noms d'hte avec la " +"mme valeur que les noms d'utilisateurs.\n" +"\n" +"Exemple:" + +#: ../tcos-configurator.glade:1570 +msgid "" +"Users: from user01 to user15\n" +"Hostnames: from user01 to user15" +msgstr "" +"Utilisateurs: d'utilisateur01 utilisateur15\n" +"Noms d'hte: d'utilisateur01 utilisateur15" + +#: ../tcos-configurator.glade:1596 +msgid "" +"1.- Create users with tcos-configurator\n" +"2.- Configure DHCP with a 15 IP's range (or more)\n" +"3.- Edit /etc/hosts and add this:" +msgstr "" +"1.- Crer des utilisateurs avec tcos-configurator\n" +"2.- Configurer le DHCP avec une gamme de 15 adresses IP (ou plus)\n" +"3.- diter /etc/hosts et ajoutez ceci:" + +#: ../tcos-configurator.glade:1623 +msgid "" +"192.168.0.101 user01\n" +"192.168.0.102 user02\n" +"192.168.0.103 user03\n" +"...\n" +"192.168.0.115 user15" +msgstr "" +"192.168.0.101 utilisateur01\n" +"192.168.0.102 utilisateur02\n" +"192.168.0.103 utilisateur03\n" +"...\n" +"192.168.0.115 utilisateur15" + +#: ../tcos-configurator.py:293 +msgid "TCOS and Backharddi" +msgstr "TCOS et Backharddi" + +#: ../tcos-configurator.py:294 ../tcos-configurator.py:299 +msgid "TCOS" +msgstr "TCOS" + +#: ../tcos-configurator.py:295 +msgid "Backharddi" +msgstr "Backharddi" + +#: ../tcos-configurator.py:464 +msgid "" +"WARNING:\n" +"Network interface don't have IP" +msgstr "" +"AVERTISSEMENT:\n" +"L'interface rseau ne possde pas d'adresse IP" + +#: ../tcos-configurator.py:483 ../tcos-configurator.py:488 +#, python-format +msgid "" +"Your %s file will be overwritten.\n" +"\n" +"Continue?" +msgstr "" +"Votre %s fichier va tre cras.\n" +"\n" +"Continuer?" + +#: ../tcos-configurator.py:553 +msgid "" +"Reboot required (or restart gdm/kdm daemon) to enable new GDM/KDM " +"settings" +msgstr "" +"Un redmarrage est requis (ou veuillez redmarrer le dmon gdm/kdm) pour " +"activer les nouveaux rglages de GDM/KDM" + +#: ../tcos-configurator.py:590 +#, python-format +msgid "Creating from %(prefix)s%(init)02d to %(prefix)s%(end)02d" +msgstr "En train de crer depuis %(prefix)s%(init)02d vers %(prefix)s%(end)02d" + +#: ../tcos-configurator.py:623 +#, python-format +msgid "Creating user: '%s'" +msgstr "En train de crer: %s" + +#: ../tcos-configurator.py:631 +#, python-format +msgid "User already exists: '%s'" +msgstr "L'utilisateur existe dj: %s" + +#: ../tcos-configurator.py:637 ../tcos-configurator.py:972 +#: ../tcos-configurator.py:996 ../tcos-configurator.py:1156 +#: ../tcos-configurator.py:1178 +msgid "Done" +msgstr "Fait" + +#: ../tcos-configurator.py:818 +msgid "Configuring DNSMASQ service..." +msgstr "Configuration du service DNSMASQ en cours€" + +#: ../tcos-configurator.py:925 +msgid "" +"Error writing /etc/dnsmasq.conf.\n" +"Are you root?" +msgstr "" +"Une erreur s'est produite pendant l'criture dans /etc/dnsmasq.conf.\n" +"tes-vous superutilisateur?" + +#: ../tcos-configurator.py:962 ../tcos-configurator.py:1146 +msgid "Configured static network" +msgstr "Rseau statique configur" + +#: ../tcos-configurator.py:977 ../tcos-configurator.py:1161 +msgid "ERROR:Error configuring static network." +msgstr "" +"ERREUR: Une erreur s'est produite lors de la configuration statique du " +"rseau." + +#: ../tcos-configurator.py:983 +msgid "Restarting DNSMASQ service..." +msgstr "Redmarrage du service DNSMASQ en cours€" + +#: ../tcos-configurator.py:998 +msgid "Error restarting DNSMASQ server." +msgstr "" +"Une erreur s'est produite lors du redmarrage du serveur DNSMASQ." + +#: ../tcos-configurator.py:1006 +msgid "Configuring DHCP service..." +msgstr "Configuration du service DHCP en cours€" + +#: ../tcos-configurator.py:1100 +msgid "" +"Error writing /etc/dhcp3/dhcpd.conf.\n" +"Are you root?" +msgstr "" +"Une erreur s'est produite lors de l'criture dans /etc/dhcp3/dhcpd.conf.\n" +"tes-vous superutilisateur?" + +#: ../tcos-configurator.py:1167 +msgid "Restarting DHCP service..." +msgstr "Redmarrage du service DHCP en cours€" + +#: ../tcos-configurator.py:1180 +msgid "Error restarting DHCP server."
+msgstr "Une erreur s'est produite lors du redmarrage du serveur DHCP."
Update French translation (closes: #673941)
Thanks to Julien Patriarca
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: 856f5375b258e901f1ed2bdf6c8b69919ae042ab
Date: Fri, 22 Jun 2012 11:40:47 GMT
Commit diff
--- a/debian/changelog+++ b/debian/changelog @@ -1,3 +1,10 @@ +tcosconfig (0.3.33) unstable; urgency=low + + * Update French translation (closes: #673941) + Thanks to Julien Patriarca + + -- Mario Izquierdo (mariodebian) Fri, 22 Jun 2012 13:39:06 +0200 +
tcosconfig (0.3.32) unstable; urgency=low * TcosChrootBuilder.py:
--- a/po/fr.po+++ b/po/fr.po @@ -1,12 +1,17 @@ +# Translation of tcosconfig to french. +# Copyright (C) Julien Patriarca 2012 +# This file is distributed under the same license as the tcosconfig package. +# Julien Patriarca , 2012. +#
msgid "" msgstr "" "Project-Id-Version: tcosconfig 0.0.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-01-15 16:49+0100\n"-"PO-Revision-Date: 2008-11-06 12:30+0100\n" -"Last-Translator: manu berro \n" -"Language-Team: Spanish \n" -"Language: es\n" +"PO-Revision-Date: 2012-05-06 11:25+0100\n" +"Last-Translator: Julien Patriarca \n" +"Language-Team: \n" +"Language: \n"
"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n"@@ -14,7 +19,7 @@ msgstr ""
#: ../TcosChrootBuilder.py:297 msgid "Do you want to delete entire chroot environment?"-msgstr "tes vous sr de vouloir supprimer le chroot entier ?" +msgstr "tes vous sr de vouloir supprimer le chroot entier?"
#: ../DetectArch.py:80 #, python-format@@ -30,17 +35,17 @@ msgid ""
"\n" "If select \"No\" wizard will construct %(arch)s images." msgstr ""-"Une architecture non i386 a t dtecte.\n" +"Une architecture non i386 a t dtecte.\n"
"\n" "\n"-"Normallement, les clients lgers sont quips en i386\n" -"(Pentium II/III/IV o AMD K6/K7), ce systme excute l'architecture " +"Normalement, les clients lgers sont quips en i386\n" +"(Pentium II/III/IV ou AMD K6/K7), ce systme excute l'architecture "
"%(arch)s.\n" "\n"-"Voulez vous contruire un chroot 32 bits et gnrer les images TCOS en 32 " -"bits ?\n" +"Voulez vous construire un chroot 32bits et gnrer les images TCOS en 32" +"bits?\n"
"\n"-"Si vous slectionnez Non, l'assistant contruira des images pour %(arch)s." +"Si vous slectionnez Non, l'assistant construira des images pour %(arch)s."
#: ../DetectArch.py:86 msgid "TcosConfig, invalid architecture"@@ -49,12 +54,12 @@ msgstr "TcosConfig, architecture invalide"
#: ../TcosGui.py:61 msgid "Error, you must run this app as root user" msgstr ""-"Erreur, vous devez excuter cette application en tant qu'utilisateur root." +"Erreur, vous devez excuter cette application en tant que superutilisateur."
#: ../TcosGui.py:201 #, python-format msgid "Need to enable %s before"-msgstr "Il est ncessaire d'activer %s au pralable" +msgstr "Il est ncessaire d'activer %s au pralable"
#: ../TcosGui.py:296 msgid ""@@ -63,14 +68,14 @@ msgid ""
"\n" "The password will be established to: \"root\"" msgstr ""-"Vous avez laiss vide le mot de passe root, pour les clients lgers dans:\n" -" - Configuration avance -> Utilisateurs et mot de passe\n" +"Vous avez laiss vide le mot de passe root, pour les clients lgers dans:\n" +" - Configuration avance -> Utilisateurs et mot de passe\n"
"\n"-"Le mot de passe qui sera appliqu est: \"root\"" +"Le mot de passe qui sera appliqu est: \"root\""
#: ../TcosGui.py:313 msgid "Overwriting it with your own settings."-msgstr "craser par vos rglages." +msgstr "L'craser par vos propres rglages."
#: ../TcosGui.py:323 msgid ""@@ -78,24 +83,24 @@ msgid ""
"\n" "Select boot method??" msgstr ""-"Une erreur est survenue la lecture des valeurs du fichier de configuration " -"pour gnrer les arguments de la ligne\n" +"Une erreur est survenue la lecture des valeurs du fichier de configuration " +"pour gnrer les arguments de la ligne\n"
"de commandes de gentcos.\n"-"Avez vous slectionn un mode de dmarrage?" +"Avez vous slectionn un mode de dmarrage?"
#: ../TcosGui.py:330 #, python-format msgid "EXEC: %s"-msgstr "Excuter: %s" +msgstr "Excuter: %s"
#: ../TcosGui.py:382 #, python-format msgid "Working... (%d %%)"-msgstr "En cours... (%d %%)" +msgstr "En cours€ (%d %%)"
#: ../TcosGui.py:384 msgid "Complete"-msgstr "Termin" +msgstr "Termin"
#: ../TcosGui.py:452 #, python-format@@ -104,21 +109,21 @@ msgid ""
"Changed values are:\n" " %s" msgstr ""-"Configuration correctement enregistre.\n" -"Les valeurs changes sont:\n" +"Configuration correctement enregistre.\n" +"Les valeurs changes sont:\n"
"%s" #: ../TcosGui.py:727 msgid "No template description avalaible"-msgstr "Pas de description disponible pour ce modle" +msgstr "Pas de description disponible pour ce modle"
#: ../TcosGui.py:738 msgid "don't use any template"-msgstr "Ne pas utiliser de modles" +msgstr "Ne pas utiliser de modles"
#: ../ConfigReader.py:251 msgid "Template generated by tcosconfig"-msgstr "Modle gnr par tcosconfig" +msgstr "Modle gnr par tcosconfig"
#: ../shared.py:100 msgid "Remote XDMCP"@@ -142,7 +147,7 @@ msgstr "FreeNX"
#: ../shared.py:105 ../shared.py:141 ../shared.py:148 msgid "Disable"-msgstr "Desactiver" +msgstr "Dsactiver"
#: ../shared.py:109 msgid "English - us"@@ -158,7 +163,7 @@ msgstr "Espagnol - es"
#: ../shared.py:112 msgid "French - fr"-msgstr "Franais - fr" +msgstr "Franais - fr"
#: ../shared.py:113 msgid "German - de"@@ -166,7 +171,7 @@ msgstr "Allemand - de"
#: ../shared.py:114 msgid "Brazilian Portuguese - br"-msgstr "" +msgstr "Brsilien Portugais - br"
#: ../shared.py:118 msgid "VESA"@@ -174,16 +179,15 @@ msgstr "VESA"
#: ../shared.py:119 msgid "Automatic detect"-msgstr "Dtection automatique" +msgstr "Dtection automatique"
#: ../shared.py:120-#, fuzzy
msgid "Full Automatic detect"-msgstr "Dtection automatique" +msgstr "Dtection automatique complte"
#: ../shared.py:121 msgid "Native Xorg autodetection"-msgstr "" +msgstr "Auto-dtection native de Xorg"
#: ../shared.py:142 msgid "Links2 browser"@@ -195,11 +199,11 @@ msgstr "Navigateur dillo"
#: ../shared.py:149 msgid "LTSP filesystem"-msgstr "Systme de fichiers LTSP" +msgstr "Systme de fichiers LTSP"
#: ../shared.py:150 msgid "SSH filesystem"-msgstr "Systme de fichiers SSHFS" +msgstr "Systme de fichiers SSHFS"
#: ../shared.py:155 msgid "Eherboot floppy"@@ -207,15 +211,15 @@ msgstr "Disquette Etherboot"
#: ../shared.py:156 msgid "PXE booting"-msgstr "Dmarrage PXE" +msgstr "Dmarrage PXE"
#: ../shared.py:157 msgid "CDROM booting"-msgstr "Dmarrage par CDrom" +msgstr "Dmarrage par CD-ROM"
#: ../shared.py:158 msgid "NFS booting (mem < 38)"-msgstr "Dmarrage NFS (mmoire < 38)" +msgstr "Dmarrage NFS (mmoire < 38)"
#: ../shared.py:163 msgid "None"@@ -232,14 +236,14 @@ msgstr "Configurateur TCOS"
#: ../ui/tcosconfig.ui:29 msgid "" "0. Welcome 1. Config 2. Make image " +"size=\"x-large\" foreground=\"black\" >0. Welcome 1. Config 2. Make image ""3. Finish!" msgstr "" "0. Bienvenue 1. Configurer 2. Crer "-"l'image 3. Termin!" +"size=\"x-large\" foreground=\"black\" >0. Bienvenue 1. Configurer 2. Crer " +"l'image 3. Termin!"
#: ../ui/tcosconfig.ui:56 msgid ""@@ -251,25 +255,25 @@ msgstr ""
"Bienvenue dans l'assitant de configuration de " "TCOS\n" "\n"-"Cet assistant prpare quelques rglages de configuration\n" -"et gnre des images bootables pour les rseaux de clients lgers." +"Cet assistant prpare quelques rglages de configuration\n" +"et gnre des images amorables pour les rseaux de clients lgers."
#: ../ui/tcosconfig.ui:87 ../ui/tcosconfig.ui:205 ../ui/tcosconfig.ui:1579 #: ../ui/tcosconfig.ui:2949 ../ui/tcosconfig.ui:3635 msgid "" "0. Welcome 1. Config 2. "-"Make image 3. Finish!" +"size=\"x-large\" >0. Welcome 1. Config 2. " +"Make image 3. Finish!"
msgstr "" "0. Bienvenue 1. Configurer 2. "-"Crer l'image 3. Termin!" +"size=\"x-large\" >0. Bienvenue 1. Configurer 2. " +"Crer l'image 3. Termin!"
#: ../ui/tcosconfig.ui:103 msgid "TCOS Templates"-msgstr "Modles TCOS" +msgstr "Modles TCOS"
#. leave paragrahps in simple lines #: ../ui/tcosconfig.ui:115@@ -281,17 +285,17 @@ msgid ""
"\n" "If you want sound, devices, TcosMonitor select complete template." msgstr ""-"TcosConfig dispose de quelques modles de configuration pour crer plus " -"rapidement des images de dmarrage.\n" +"TcosConfig dispose de quelques modles de configuration pour crer " +"rapidement des images de dmarrage.\n"
"\n"-"Si vos clients lgers sont assez vieux et ont peu de potentiel, utilisez le " -"modle \"low\" (sans son, priphriques et avec un affichage basique)\n" +"Si vos clients lgers sont assez vieux et ont peu de potentiel, utilisez le " +"modle \"low\" (sans son, priphriques et avec un affichage basique)\n"
"\n"-"Si vous dsirez le son et TcosMonitor, slectionnez le modle complet." +"Si vous dsirez le son et TcosMonitor, slectionnez le modle complet."
#: ../ui/tcosconfig.ui:142 msgid "Select template"-msgstr "Slectionnez le modle" +msgstr "Slectionnez le modle"
#: ../ui/tcosconfig.ui:221 msgid "Basic Settings"@@ -307,16 +311,15 @@ msgstr "Inclure tous les drivers de Xorg disponibles"
#: ../ui/tcosconfig.ui:319 msgid "Xorg OpenGL support"-msgstr "Support OpenGL de Xorg" +msgstr "Gestion OpenGL de Xorg"
#: ../ui/tcosconfig.ui:330-#, fuzzy
msgid "include OpenGL libs"-msgstr "Inclure les houtils de dbogguage" +msgstr "Inclure les bibliothques OpenGL"
#: ../ui/tcosconfig.ui:352 msgid "Xorg support"-msgstr "Support Xorg" +msgstr "Gestion Xorg"
#: ../ui/tcosconfig.ui:361 msgid "enable Xorg"@@ -324,11 +327,11 @@ msgstr "activer Xorg"
#: ../ui/tcosconfig.ui:380 msgid "Default resolution"-msgstr "Rsolution par dfaut" +msgstr "Rsolution par dfaut"
#: ../ui/tcosconfig.ui:394 msgid "Default video driver"-msgstr "Driver vido par dfaut" +msgstr "Pilote vido par dfaut"
#: ../ui/tcosconfig.ui:408 msgid "Type of Xorg session"@@ -336,7 +339,7 @@ msgstr "Type de session Xorg"
#: ../ui/tcosconfig.ui:422 msgid "Xorg keyboard model"-msgstr "Modle de clavier de Xorg" +msgstr "Modle de clavier de Xorg"
#: ../ui/tcosconfig.ui:436 msgid "Xorg keyboard map"@@ -344,24 +347,23 @@ msgstr "Mappage clavier de Xorg"
#: ../ui/tcosconfig.ui:502 msgid "(default pc105)"-msgstr "(dfaut pc105)" +msgstr "(dfaut pc105)"
#: ../ui/tcosconfig.ui:540-#, fuzzy
msgid "Enable fonts server"-msgstr "activer le serveur x11vnc" +msgstr "Activer le serveur de polices"
#: ../ui/tcosconfig.ui:551 msgid "use xfs and xfstt (if avalaible)"-msgstr "" +msgstr "Utiliser xfs et xfstt (si disponible)"
#: ../ui/tcosconfig.ui:573 msgid "Enable composite extension"-msgstr "" +msgstr "Activer l'extension composite"
#: ../ui/tcosconfig.ui:584 msgid "enable composite extension"-msgstr "" +msgstr "activer l'extension composite"
#: ../ui/tcosconfig.ui:605 msgid "Xorg options"@@ -377,15 +379,15 @@ msgstr "Serveur de sons PulseAudio"
#: ../ui/tcosconfig.ui:659 msgid "if checked use PulseAudio, if not use ESound"-msgstr "activ utilise PulseAudio, sinon utilise ESound" +msgstr " si activ utilise PulseAudio, sinon utilise ESound"
#: ../ui/tcosconfig.ui:681 msgid "Sound support"-msgstr "Support du son" +msgstr "Gestion du son"
#: ../ui/tcosconfig.ui:693 msgid "ISA sound cards support"-msgstr "Support des cartes son ISA" +msgstr "Gestion des cartes son ISA"
#: ../ui/tcosconfig.ui:704 msgid "include isa sound card modules"@@ -393,23 +395,23 @@ msgstr "inclure les modules de cartes son ISA"
#: ../ui/tcosconfig.ui:725 msgid "PulseAudio resample method"-msgstr "Mthode de resample de PulseAudio " +msgstr "Mthode de rechantillonnage de PulseAudio "
#: ../ui/tcosconfig.ui:752 msgid "default \"src-sinc-fastest\""-msgstr "par dfaut \"src-sinc-fastest\"" +msgstr "par dfaut \"src-sinc-fastest\""
#: ../ui/tcosconfig.ui:804 msgid "Master and PCM volume"-msgstr "Volume du Master et PCM" +msgstr "Volumes des Master et PCM"
#: ../ui/tcosconfig.ui:817 msgid "Enable ESound over PulseAudio"-msgstr "" +msgstr "Activer ESound au-dessus de PulseAudio"
#: ../ui/tcosconfig.ui:828 msgid "listen esound port (requires more bandwith)"-msgstr "" +msgstr "port d'coute d'Esound (ncessite plus de bande passante)"
#: ../ui/tcosconfig.ui:848 msgid "Sound options"@@ -417,11 +419,11 @@ msgstr "Options audio"
#: ../ui/tcosconfig.ui:874 msgid "enable ivs/ica daemon on thin client"-msgstr "activer le dmon ivs/ica sur le client lger" +msgstr "activer le dmon ivs/ica sur le client lger"
#: ../ui/tcosconfig.ui:893 msgid "X11VNC support"-msgstr "Support X11VNC" +msgstr "Gestion X11VNC"
#: ../ui/tcosconfig.ui:904 msgid "enable x11vnc server"@@ -429,7 +431,7 @@ msgstr "activer le serveur x11vnc"
#: ../ui/tcosconfig.ui:925 msgid "FreeNX support"-msgstr "Support FreeNX" +msgstr "Gestion FreeNX"
#: ../ui/tcosconfig.ui:936 msgid "enable freenx"@@ -437,23 +439,23 @@ msgstr "activer freenx"
#: ../ui/tcosconfig.ui:958 msgid "iTALC MasterEye Support"-msgstr "Support pour iTALC MasterEye" +msgstr "Gestion pour iTALC MasterEye"
#: ../ui/tcosconfig.ui:970 msgid "rDesktop default server"-msgstr "Serveur par dfaut rDesktop" +msgstr "Serveur par dfaut rDesktop"
#: ../ui/tcosconfig.ui:997 msgid "" "IP address or hostname\n" "of Windows Terminal Server" msgstr ""-"Adresse IP ou nom d'hte\n" +"Adresse IP ou nom d'hte\n"
"du serveur de terminaux Windows" #: ../ui/tcosconfig.ui:1020 msgid "rDesktop support"-msgstr "Support rDesktop" +msgstr "Gestion rDesktop"
#: ../ui/tcosconfig.ui:1031 msgid "enable rdesktop"@@ -461,15 +463,15 @@ msgstr "activer rdesktop"
#: ../ui/tcosconfig.ui:1052 msgid "Remote desktop support"-msgstr "Support d'accs distant" +msgstr "Gestion d'accs distant"
#: ../ui/tcosconfig.ui:1090 msgid "enable wireless support (bins)"-msgstr "activer le support WiFi (binaires)" +msgstr "activer la gestion WiFi (binaires)"
#: ../ui/tcosconfig.ui:1110 msgid "Wireless support"-msgstr "Support WiFi" +msgstr "Gestion WiFi"
#: ../ui/tcosconfig.ui:1122 msgid "Wireless encription"@@ -504,95 +506,88 @@ msgid ""
"WEP key in iwconfig format\n" "(see man iwconfig)" msgstr ""-"Clef WEP en formt iwconfig\n" +"Clef WEP au format iwconfig\n"
"(voir man iwconfig)" #: ../ui/tcosconfig.ui:1276 msgid "Wireless settings"-msgstr "Rglages WiFi" +msgstr "Rglages WiFi"
#: ../ui/tcosconfig.ui:1305 msgid "Intel DRI"-msgstr "" +msgstr "Intel DRI"
#: ../ui/tcosconfig.ui:1317 msgid "ATI DRI"-msgstr "" +msgstr "ATI DRI"
#: ../ui/tcosconfig.ui:1328 msgid "enable Intel DRI (+7MB)"-msgstr "" +msgstr "activer Intel dri (+7MB)"
#: ../ui/tcosconfig.ui:1344-#, fuzzy
msgid "enable DRI for Ati radeon (+9 MB)"-msgstr "activer le suppot extra pour DRI Ati radeon" +msgstr "activer la gestion DRI pour Ati radeon (+9MB)"
#: ../ui/tcosconfig.ui:1365 msgid "Savage DRI"-msgstr "" +msgstr "Savage DRI"
#: ../ui/tcosconfig.ui:1376-#, fuzzy
msgid "enable DRI for Savage (+2 MB)"-msgstr "activer le support DRI (taille image +20MB)" +msgstr "activer la gestion DRI pour Savage (+2MB)"
#: ../ui/tcosconfig.ui:1397 msgid "SiS DRI"-msgstr "" +msgstr "SiS DRI"
#: ../ui/tcosconfig.ui:1408-#, fuzzy
msgid "enable DRI for SiS (+2 MB)"-msgstr "activer le support DRI (taille image +20MB)" +msgstr "activer la gestion DRI pour SiS (+2MB)"
#: ../ui/tcosconfig.ui:1429 msgid "Trident DRI"-msgstr "" +msgstr "Trident DRI"
#: ../ui/tcosconfig.ui:1440-#, fuzzy
msgid "enable DRI for Trident (+2 MB)"-msgstr "activer le support DRI (taille image +20MB)" +msgstr "activer la gestion DRI pour Trident (+2MB)"
#: ../ui/tcosconfig.ui:1461 msgid "Unichrome DRI"-msgstr "" +msgstr "Unichrome DRI"
#: ../ui/tcosconfig.ui:1472-#, fuzzy
msgid "enable DRI for Unichrome (+2 MB)"-msgstr "activer le support DRI (taille image +20MB)" +msgstr "activer la gestion DRI pour Unichrome (+2MB)"
#: ../ui/tcosconfig.ui:1493 msgid "Matrox DRI"-msgstr "" +msgstr "Matrox DRI"
#: ../ui/tcosconfig.ui:1504-#, fuzzy
msgid "enable DRI for Matrox (+2 MB)"-msgstr "activer le support DRI (taille image +20MB)" +msgstr "activer la gestion DRI pour Matrox (+2MB)"
#: ../ui/tcosconfig.ui:1525-#, fuzzy
msgid "Xorg DRI"-msgstr "Options de Xorg" +msgstr "Gestion DRI pour Xorg"
#: ../ui/tcosconfig.ui:1595 msgid "Advanced settings"-msgstr "Configuration avance" +msgstr "Configuration avance"
#: ../ui/tcosconfig.ui:1636 msgid "debug enable (recomended enable)"-msgstr "dbogguage activ (recommand)" +msgstr "dbogage activ (recommand)"
#: ../ui/tcosconfig.ui:1652 msgid "squashfs disabled (default unchecked)"-msgstr "squashfs dsactiv (dsactiv par dfaut)" +msgstr "squashfs dsactiv (dsactiv par dfaut)"
#: ../ui/tcosconfig.ui:1670 msgid "external squashfs (default checked)"-msgstr "squashfs externe (activ par dfaut)" +msgstr "squashfs externe (activ par dfaut)"
#: ../ui/tcosconfig.ui:1688 msgid "delete all acpi and raid modules and bins"@@ -604,19 +599,19 @@ msgid ""
"boot using NFS" msgstr "" "min RAM (en Mb) pour\n"-"dmarrer en utilisant NFS" +"dmarrer en utilisant NFS"
#: ../ui/tcosconfig.ui:1762 msgid "Set to 0 to disable limits"-msgstr "Slectionner 0 pour dsactiver les limitations" +msgstr "Slectionner 0 pour dsactiver les limitations"
#: ../ui/tcosconfig.ui:1786 msgid "Debug building of images"-msgstr "Dbogguer la construction des images" +msgstr "Dboguer la construction des images"
#: ../ui/tcosconfig.ui:1798 msgid "Disable Squashfs support"-msgstr "Dsactiver le support de squashfs" +msgstr "Dsactiver la gestion de squashfs"
#: ../ui/tcosconfig.ui:1812 msgid ""@@ -624,39 +619,39 @@ msgid ""
"(download with tftp)" msgstr "" "squashfs externe\n"-"(tlcharger avec tftp)" +"(tlcharger avec tftp)"
#: ../ui/tcosconfig.ui:1827 msgid "Min RAM to use NFS boot"-msgstr "RAM minimum pour dmarrer avec NFS" +msgstr "RAM minimum pour dmarrer avec NFS"
#: ../ui/tcosconfig.ui:1841 msgid "Disable ACPI and RAID"-msgstr "Dsactiver ACPI et RAID" +msgstr "Dsactiver ACPI et RAID"
#: ../ui/tcosconfig.ui:1855 msgid "Limit memory (in %)"-msgstr "Limite de mmoire (en %)" +msgstr "Limite de mmoire (en %)"
#: ../ui/tcosconfig.ui:1869 msgid "Debug tools"-msgstr "Outils de dbogguage" +msgstr "Outils de dbogage"
#: ../ui/tcosconfig.ui:1880 msgid "include debug tools"-msgstr "Inclure les houtils de dbogguage" +msgstr "Inclure les outils de dbogage"
#: ../ui/tcosconfig.ui:1901 msgid "Add Bootchartd scripts"-msgstr "" +msgstr "Ajouter les scripts Bootchartd"
#: ../ui/tcosconfig.ui:1912 msgid "add bootchartd scripts (see README.bootchartd)"-msgstr "" +msgstr "ajouter les scripts bootchard (voir README.bootchartd)"
#: ../ui/tcosconfig.ui:1933 msgid "Debug settings"-msgstr "Configuration de dboggage" +msgstr "Configuration de dbogage"
#: ../ui/tcosconfig.ui:1959 msgid "enable inetd"@@ -664,7 +659,7 @@ msgstr "activer inetd"
#: ../ui/tcosconfig.ui:1980 msgid "Run SSH server in terminal"-msgstr "Excuter le serveur SSH dans un terminal" +msgstr "Excuter le serveur SSH dans un terminal"
#: ../ui/tcosconfig.ui:1991 msgid "ssh enable"@@ -672,7 +667,7 @@ msgstr "activer ssh"
#: ../ui/tcosconfig.ui:2013 msgid "Inetd support"-msgstr "Support inetd" +msgstr "Gestion d'inetd"
#: ../ui/tcosconfig.ui:2027 msgid "Include Tcos Installer"@@ -684,19 +679,19 @@ msgstr "inclure tcosinstaller et utilitaires"
#: ../ui/tcosconfig.ui:2059 msgid "Remote filesystem method"-msgstr "Systme de fichiers distant" +msgstr "Systme de fichiers distant"
#: ../ui/tcosconfig.ui:2086 msgid "Wake on LAN"-msgstr "Dmarrage par rseau (WoL)" +msgstr "Dmarrage par rseau (WoL)"
#: ../ui/tcosconfig.ui:2097 msgid "enable WAKEONLAN support"-msgstr "activer le support WAKEONLAN" +msgstr "activer la gestion de WAKEONLAN"
#: ../ui/tcosconfig.ui:2118 msgid "Include ACPI daemon"-msgstr "Inclure le dmon ACPI" +msgstr "Inclure le dmon ACPI"
#: ../ui/tcosconfig.ui:2129 msgid "enable ACPID"@@ -704,16 +699,15 @@ msgstr "activer ACPID"
#: ../ui/tcosconfig.ui:2150 msgid "Printer support"-msgstr "Support des imprimantes" +msgstr "Gestion des imprimantes"
#: ../ui/tcosconfig.ui:2161-#, fuzzy
msgid "enable printer (JetDirect) requires p910nd or lp-server"-msgstr "activer les imprimantes (JetDirect)" +msgstr "activer les imprimantes (JetDirect) ncessite p910nd ou lp-server"
#: ../ui/tcosconfig.ui:2182 msgid "TcosMonitor support"-msgstr "Support TcosMonitor" +msgstr "Gestion de TcosMonitor"
#: ../ui/tcosconfig.ui:2191 msgid "enable TcosMonitor"@@ -725,63 +719,59 @@ msgstr "Chiffrage SSL de XMLRPC"
#: ../ui/tcosconfig.ui:2221 msgid "enable SSL encryption (need stunnel4)"-msgstr "activer le chiffrage SSL (ncessite stunnel4)" +msgstr "activer le chiffrage SSL (ncessite stunnel4)"
#: ../ui/tcosconfig.ui:2241-#, fuzzy
msgid "Support for Gnetic clone"-msgstr "Soporte para discover" +msgstr "Gestion pour les clones Gnetic"
#: ../ui/tcosconfig.ui:2252-#, fuzzy
msgid "enable gnetic clone clients support"-msgstr "activer le support WiFi (binaires)" +msgstr "activer la gestion des clients clones gnetic"
#: ../ui/tcosconfig.ui:2272 msgid "Support for NTFS read/write"-msgstr "" +msgstr "Gestion de NTFS en lecture/criture"
#: ../ui/tcosconfig.ui:2283-#, fuzzy
msgid "enable ntfs-3g support"-msgstr "activer le support AUTOFS" +msgstr "activer la gestion de ntfs-3g"
#: ../ui/tcosconfig.ui:2304 msgid "Enable COMPCACHE"-msgstr "" +msgstr "Activer COMPCACHE"
#: ../ui/tcosconfig.ui:2313-#, fuzzy
msgid "enable COMPCACHE support"-msgstr "activer le support AUTOFS" +msgstr "activer la gestion de COMPCACHE"
#: ../ui/tcosconfig.ui:2350 msgid "Default 20%"-msgstr "" +msgstr "Valeur par dfaut 20%"
#: ../ui/tcosconfig.ui:2373 msgid "COMPCACHE % size"-msgstr "" +msgstr "COMPCACHE % taille"
#: ../ui/tcosconfig.ui:2385 msgid "Services, daemons settings"-msgstr "Configuration des services et dmons" +msgstr "Configuration des services et dmons"
#: ../ui/tcosconfig.ui:2439 msgid "(leave empty by default)"-msgstr "(laisser vide pour la valeur par dfaut)" +msgstr "(laisser vide pour la valeur par dfaut)"
#: ../ui/tcosconfig.ui:2470 msgid "user to be admin of thin clients"-msgstr "Utilisateur administrateur des clients lgers" +msgstr "Utilisateur administrateur des clients lgers"
#: ../ui/tcosconfig.ui:2492 msgid "Server IP address"-msgstr "Adresse IP du serveur (autodtecte)" +msgstr "Adresse IP du serveur"
#: ../ui/tcosconfig.ui:2504 msgid "Server admin username"-msgstr "Utilisateur administrateur du serveur" +msgstr "Nom de l'administrateur du serveur"
#: ../ui/tcosconfig.ui:2518 msgid "Terminal password"@@ -789,19 +779,19 @@ msgstr "Mot de passe du terminal"
#: ../ui/tcosconfig.ui:2545 msgid "root's terminal password (if empty this is root)"-msgstr "mot de passe de root en terminal (vide: root)" +msgstr "mot de passe du terminal administrateur (vide: root)"
#: ../ui/tcosconfig.ui:2567 msgid "Protect first console (tty1)"-msgstr "Protger la premire console (tty1)" +msgstr "Protger la premire console (tty1)"
#: ../ui/tcosconfig.ui:2578 msgid "" "ask for user and password in tty1, \n" "others always ask for password" msgstr ""-"demander l'identifiant et le mot de passe sur tty1,\n" -"sera demand systmatiquement sur les autres." +"demander l'identifiant et le mot de passe sur tty1,\n" +"demande systmatique sur les autres."
#: ../ui/tcosconfig.ui:2600 msgid "Number of tty shells"@@ -809,11 +799,11 @@ msgstr "Nombre de consoles tty"
#: ../ui/tcosconfig.ui:2630 msgid "between 1 to 6"-msgstr "entre 1 y 6" +msgstr "entre 1 et 6"
#: ../ui/tcosconfig.ui:2653 msgid "Users and passwords (auth)"-msgstr "Utilisateurs et mots de passe (autentification)" +msgstr "Utilisateurs et mots de passe (authentification)"
#: ../ui/tcosconfig.ui:2692 msgid "Menu type"@@ -821,16 +811,15 @@ msgstr "Type de menu"
#: ../ui/tcosconfig.ui:2704 msgid "Usplash and theme"-msgstr "Usplash et thme" +msgstr "Usplash et thme"
#: ../ui/tcosconfig.ui:2719-#, fuzzy
msgid "disable Usplash"-msgstr "dsactiver usplash" +msgstr "dsactiver Usplash"
#: ../ui/tcosconfig.ui:2757 msgid "No menu, only splash (default)"-msgstr "Pas de menu, splash seul (par dfaut)" +msgstr "Pas de menu, bannire seule (par dfaut)"
#: ../ui/tcosconfig.ui:2772 msgid "Simple text mode"@@ -838,7 +827,7 @@ msgstr "Menu texte simple"
#: ../ui/tcosconfig.ui:2788 msgid "Graphic menu mode (need BIOS vesa support)"-msgstr "Menu graphique (ncessite que le BIOS supporte le mode VESA)" +msgstr "Menu graphique (ncessite que le BIOS gre le mode VESA)"
#: ../ui/tcosconfig.ui:2804 msgid "Hide menu install options"@@ -846,26 +835,23 @@ msgstr "Cacher l'option d'installation du menu"
#: ../ui/tcosconfig.ui:2819 msgid "Hide local boot from hdd"-msgstr "Cacher le dmarrage local depuis le disque dur" +msgstr "Cacher le dmarrage local depuis le disque dur"
#: ../ui/tcosconfig.ui:2846-#, fuzzy
msgid "disable Plymouth"-msgstr "dsactiver usplash" +msgstr "dsactiver Plymouth"
#: ../ui/tcosconfig.ui:2883-#, fuzzy
msgid "Plymouth and theme"-msgstr "Usplash et thme" +msgstr "Plymouth et thme"
#: ../ui/tcosconfig.ui:2897-#, fuzzy
msgid "Boot menu and splash"-msgstr "Menu de dmarrage et usplash" +msgstr "Menu de dmarrage et bannire"
#: ../ui/tcosconfig.ui:2965 msgid "Advanced Settings"-msgstr "Configuration avance" +msgstr "Configuration avance"
#: ../ui/tcosconfig.ui:2988 msgid ""@@ -873,9 +859,9 @@ msgid ""
"line append \n" "(for NBI images)" msgstr ""-"Paramtres de\n" -"dmarrage\n" -"(images NBI)" +"Ajout d'une ligne \n" +"de commande par dfaut\n" +"(pour les images NBI)"
#: ../ui/tcosconfig.ui:3027 msgid "Include all modules"@@ -883,19 +869,19 @@ msgstr "inclure tous les modules"
#: ../ui/tcosconfig.ui:3036 msgid "include all modules (don't use by default)"-msgstr "inclure tous les modules (ne pas utiliser pa dfaut)" +msgstr "inclure tous les modules (ne pas utiliser par dfaut)"
#: ../ui/tcosconfig.ui:3056 msgid "" "Extra kernel modules\n" "(coma separated)" msgstr ""-"Modules complmentaires du noyau\n" -"(spars par des virgules)" +"Modules complmentaires du noyau\n" +"(spars par des virgules)"
#: ../ui/tcosconfig.ui:3071 msgid "USB devices support"-msgstr "Support des priphriques USB" +msgstr "Gestion des priphriques USB"
#: ../ui/tcosconfig.ui:3082 msgid "enable USB devices"@@ -903,19 +889,19 @@ msgstr "activer les dispositifs USB"
#: ../ui/tcosconfig.ui:3103 msgid "IDE PATA SATA disk support"-msgstr "Support IDE PATA SATA" +msgstr "Gestion des disques IDE PATA SATA"
#: ../ui/tcosconfig.ui:3114 msgid "disable IDE PATA devices"-msgstr "dsactiver le suppoort IDE PATA" +msgstr "dsactiver la gestion des IDE PATA"
#: ../ui/tcosconfig.ui:3135 msgid "USB support"-msgstr "Support USB" +msgstr "Gestion USB"
#: ../ui/tcosconfig.ui:3146 msgid "disable USB devices support"-msgstr "dsactiver le support USB" +msgstr "dsactiver la gestion de l'USB"
#: ../ui/tcosconfig.ui:3167 msgid ""@@ -923,27 +909,25 @@ msgid ""
"Example:\n" "intel-agp,nv,joydev,pcspkr" msgstr ""-"Ajouter des modules complmentaires ici (spars par des virgules)\n" -"Exemple:\n" +"Ajouter des modules complmentaires ici (spars par des virgules)\n" +"Exemple:\n"
"intel-agp,nv,joydev,pcspkr" #: ../ui/tcosconfig.ui:3186-#, fuzzy
msgid "" "Blacklist kernel modules\n" "(coma separated)" msgstr ""-"Modules complmentaires du noyau\n" -"(spars par des virgules)" +"Liste noire des modules du noyau\n" +"(spars par des virgules)"
#: ../ui/tcosconfig.ui:3201-#, fuzzy
msgid "" "Blacklist modules (coma separated)\n"-"Example:\n" +"Example:\n"
"intel-agp,nv,joydev,pcspkr" msgstr ""-"Ajouter des modules complmentaires ici (spars par des virgules)\n" +"Liste noire des modules (spars par des virgules)\n"
"Exemple:\n" "intel-agp,nv,joydev,pcspkr"@@ -957,7 +941,7 @@ msgstr "Navigateur web local"
#: ../ui/tcosconfig.ui:3288 msgid "Use NFS (for lowmem)"-msgstr "Utiliser NFS (moins d'utilisation mamoire)" +msgstr "Utiliser NFS (moins d'utilisation mmoire)"
#: ../ui/tcosconfig.ui:3313 msgid "Include AUTOFS"@@ -965,7 +949,7 @@ msgstr "Inclure AUTOFS"
#: ../ui/tcosconfig.ui:3324 msgid "enable AUTOFS support"-msgstr "activer le support AUTOFS" +msgstr "activer la gestion de AUTOFS"
#: ../ui/tcosconfig.ui:3345 msgid "Cache packages"@@ -973,7 +957,7 @@ msgstr "Mettre les paquets en cache"
#: ../ui/tcosconfig.ui:3374 msgid "Other settings"-msgstr "Autres rglages" +msgstr "Autres rglages"
#: ../ui/tcosconfig.ui:3419 msgid "EPATEC eTC2300"@@ -1000,8 +984,8 @@ msgid ""
"enable Xorg Openchrome VIA video support\n" "Thin clients: Epatec 3800 & 2500, HP t5530... etc" msgstr ""-"activer le support vido Xorg Openchrome VIA\n" -"Clients lgers: Epatec 3800 & 2500, HP t5530... etc" +"activer la gestion vido Xorg Openchrome VIA\n" +"Clients lgers: Epatec 3800 & 2500, HP t5530,etc"
#: ../ui/tcosconfig.ui:3512 msgid "EPATEC eTC3800 & eTC2500"@@ -1009,73 +993,73 @@ msgstr "EPATEC eTC3800 & eTC2500"
#: ../ui/tcosconfig.ui:3523 msgid "enable generic VIA modules"-msgstr "activer les modules gnriques VIA" +msgstr "activer les modules gnriques VIA"
#: ../ui/tcosconfig.ui:3544 msgid "Some thin clients hacks"-msgstr "Rglages particuliers des clients lgers" +msgstr "Rglages particuliers des clients lgers"
#: ../ui/tcosconfig.ui:3565 msgid "Modify this cmdline append to yours needs"-msgstr "Changer cette ligne de commande par celle que vous dsirez" +msgstr "Changer cette ligne de commande par celle que vous dsirez"
#: ../ui/tcosconfig.ui:3582 msgid "Select kernel version" msgstr ""-"Slectionnez la version\n" +"Slectionnez la version\n"
"du noyau" #: ../ui/tcosconfig.ui:3651 ../ui/tcosconfig.ui:3693 msgid "Boot method"-msgstr "Mode de dmarrage" +msgstr "Mode de dmarrage"
#: ../ui/tcosconfig.ui:3666 msgid "" "Thin clients can boot with many methods:\n" "\n"-" PXE, some special network cards, boot from his own ROM\n" -" Etherboot, some network cards, can be booted from a floppy drive\n" +" PXE, some special network cards, boot from his own ROM\n" +" Etherboot, some network cards, can be booted from a floppy drive\n"
" (latest version of Etherboot can simulate PXE network support)\n"-" All of network cards unsupported can be booted with cdrom image or hard " +" All of network cards unsupported can be booted with cdrom image or hard "
"disk.\n" msgstr ""-"Les clients lgers peuvent dmarrer de plusieurs " -"manires:\n" +"Les clients lgers peuvent dmarrer de plusieurs " +"manires:\n"
" \n"-" PXE, cartaines cartes rseau spciales peuvent dmarrer depuis leur propre " +" PXE, certaines cartes rseau spciales peuvent dmarrer depuis leur propre "
"ROM\n"-" Etherboot, certaines cartes rseau peuvent dmarrer depuis une disquette\n" -" (la dernire version d'Etherboot peut simuler un support PXE)\n" -" Toutes les cartes rseau non supportes peuvent dmarrer avec une image de " -"CDrom ou de disque dur.\n" +" Etherboot, certaines cartes rseau peuvent dmarrer depuis une disquette\n" +" (la dernire version d'Etherboot peut simuler une gestion PXE)\n" +" Toutes les cartes rseau non gres peuvent dmarrer avec une image de " +"CD-ROM ou de disque dur.\n"
#: ../ui/tcosconfig.ui:3752 msgid "" "0. Welcome 1. "-"Config 2. Make " -"image 3. Finish!" +"size=\"x-large\" >0. Welcome 1. " +"Config 2. Make " +"image 3. Finish!"
msgstr "" "0. Bienvenue 1. "-"Configurer 2. " -"Crer l'image 3. Termin!" +"size=\"x-large\" >0. Bienvenue 1. " +"Configurer 2. " +"Crer l'image 3. Termin!"
#: ../ui/tcosconfig.ui:3776 msgid "Building init images"-msgstr "Cration de l'image de dmarrage" +msgstr "Cration de l'image de dmarrage"
#: ../ui/tcosconfig.ui:3799 msgid "Press Start to begin image generation."-msgstr "Cliquez sur Dmarrer pour gnrer l'image." +msgstr "Cliquez sur Dmarrer pour gnrer l'image."
#: ../ui/tcosconfig.ui:3828 msgid "Press here to start generation process"-msgstr "Cliquez ici pour commencer le processus de gnration" +msgstr "Cliquez ici pour commencer le processus de gnration"
#: ../ui/tcosconfig.ui:3852 msgid "Start"-msgstr "Dmarrer" +msgstr "Dmarrer"
#: ../ui/tcosconfig.ui:3917 msgid "View Process"@@ -1083,24 +1067,24 @@ msgstr "Voir le processus"
#: ../ui/tcosconfig.ui:3934 msgid "Working..."-msgstr "En cours..." +msgstr "En cours€"
#: ../ui/tcosconfig.ui:3970 msgid "" "0. Welcome 1. "-"Config 2. Make image " +"size=\"x-large\" >0. Welcome 1. " +"Config 2. Make image "
"3. Finish!" msgstr "" "0. Bienvenue 1. "-"Configurer 2. Crer l'image imagen 3. Termin!0. Bienvenue 1. " +"Configurer 2. Crer l'image 3. Termin!"
#: ../ui/tcosconfig.ui:3993 msgid "Congratulations!"-msgstr "Flicitations!" +msgstr "Flicitations!"
#: ../ui/tcosconfig.ui:4011 msgid ""@@ -1110,10 +1094,10 @@ msgid ""
"In order to boot this images in thin clients you have to configure your " "DHCP server file." msgstr ""-"Le processus de gnration s'est termin " +"Le processus de gnration s'est termin "
"correctement\n" "\n"-"Pour dmarrer ces images sur les clients lgers, vous devez configurer le " +"Pour dmarrer ces images sur les clients lgers, vous devez configurer le "
"serveur DHCP." #: ../ui/tcosconfig.ui:4025@@ -1122,7 +1106,7 @@ msgid ""
"Cancel to quit." msgstr "" "Cliquez sur le bouton Terminer et enregistrer pour enregistrer ces "-"rglages \n" +"rglages \n"
"ou cliquez sur le bouton Annuler pour sortir." #: ../ui/tcosconfig.ui:4185@@ -1135,11 +1119,11 @@ msgstr "Constructeur du chroot"
#: ../ui/tcos-chrootbuilder.ui:81 msgid "Select distro version"-msgstr "Slectionner la version de distribution" +msgstr "Slectionner la version de distribution"
#: ../ui/tcos-chrootbuilder.ui:106 msgid "Select architecture"-msgstr "Slectionnez l'architecture" +msgstr "Slectionner l'architecture"
#: ../ui/tcos-chrootbuilder.ui:118 msgid "Kernel version"@@ -1151,24 +1135,23 @@ msgstr "Serveur miroir principal"
#: ../ui/tcos-chrootbuilder.ui:183 msgid "Select distribution"-msgstr "Slectionnez la distribution" +msgstr "Slectionner la distribution"
#: ../ui/tcos-chrootbuilder.ui:204 msgid "Security mirror"-msgstr "Serveur miroir de scurit" +msgstr "Serveur miroir de scurit"
#: ../ui/tcos-chrootbuilder.ui:230 msgid "TCOS mirror" msgstr "Miroir TCOS" #: ../ui/tcos-chrootbuilder.ui:255-#, fuzzy
msgid "enable"-msgstr "activer ssh" +msgstr "activer"
#: ../ui/tcos-chrootbuilder.ui:274 msgid "Enable TCOS experimental branch"-msgstr "" +msgstr "Activer la branche exprimentale de TCOS"
#: ../ui/tcos-chrootbuilder.ui:292 msgid "Chroot options"@@ -1180,7 +1163,7 @@ msgstr "Sortir"
#: ../ui/tcos-chrootbuilder.ui:385 msgid "Build TCOS images"-msgstr "Contruire les images TCOS" +msgstr "Construire les images TCOS"
#: ../ui/tcos-chrootbuilder.ui:434 msgid "Update chroot"@@ -1192,7 +1175,7 @@ msgstr "Supprimer le chroot"
#: ../ui/tcos-chrootbuilder.ui:532 msgid "Build chroot"-msgstr "Construire le chroot" +msgstr "Construire le chroot"
#: ../ui/tcosconfig-aboutdialog.ui:8 msgid "License GNU/GPL"@@ -1200,7 +1183,7 @@ msgstr "Licence GNU/GPL"
#: ../ui/tcosconfig-aboutdialog.ui:9 msgid "TCOS Network image generator"-msgstr "Gnrateur d'images de rseau TcosConfig" +msgstr "Gnrateur d'images de rseau TcosConfig"
#: ../ui/tcosconfig-aboutdialog.ui:11 msgid "TcosConfig web site"@@ -1209,7 +1192,7 @@ msgstr "Page web TcosConfig"
#. TRANSLATORS: Replace this string with your names, one name per line. #: ../ui/tcosconfig-aboutdialog.ui:14 msgid "translator-credits"-msgstr "" +msgstr "traducteurs"
"Manuel BERROCAL\n" ""@@ -1227,7 +1210,7 @@ msgstr ""
#~ "(perhaps need tcos-opengl-libs package)" #~ msgstr "" #~ "inclure les librairies OpenGL\n"-#~ "(peut ncessiter le paquet tcos-opengl-libs)" +#~ "(peut ncessiter le paquet tcos-opengl-libs)"
#~ msgid "Xorg Direct Rendering (DRI)" #~ msgstr "Xorg Direct Rendering (DRI)"@@ -1242,10 +1225,10 @@ msgstr ""
#~ msgstr "Montrer les modules requis" #~ msgid "enable discover hardware autodetect"-#~ msgstr "activer l'autodtection de matriel" +#~ msgstr "activer l'autodtection de matriel"
#~ msgid "install debian or ubuntu from network"-#~ msgstr "installer debian ou ubuntu par le rseau" +#~ msgstr "installer debian ou ubuntu par le rseau"
#~ msgid "show not found modules (stop at boot)"-#~ msgstr "indiquer le modules non trouvs (s'arrte au dmarrage)"
+#~ msgstr "indiquer le modules non trouvs (s'arrte au dmarrage)"
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: aaaf8a1f9e127ba291959a44649f63402cdc10d8
Date: Fri, 22 Jun 2012 11:35:16 GMT
Commit diff
--- a/debian/changelog+++ b/debian/changelog @@ -1,3 +1,10 @@ +tcosmonitor (0.2.48) unstable; urgency=low + + * Add French translation (closes: #678235) + Thanks to Julien Patriarca + + -- Mario Izquierdo (mariodebian) Fri, 22 Jun 2012 13:33:28 +0200 +
tcosmonitor (0.2.47) unstable; urgency=low * tcosmonitor/TcosCommon.py:
--- a/po/Makefile+++ b/po/Makefile @@ -1,4 +1,4 @@ -LANGUAGES=es pt_BR ca ca@valencia gl +LANGUAGES=es pt_BR ca ca@valencia gl fr
all: gmo
--- /dev/null+++ b/po/fr.po @@ -0,0 +1,2858 @@ +# Translation of tcosmonitor to french. +# Copyright (C) 2012 Debian French l10n Team +# This file is distributed under the same license as the tcosmonitor package. +# Julien Patriarca , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: tcosmonitor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-06-22 13:31+0200\n" +"PO-Revision-Date: 2012-06-10 00:08+0100\n" +"Last-Translator: Julien Patriarca \n" +"Language-Team: FRENCH \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../tcos-volume-manager.py:97 ../tcos-volume-manager.py:109 +#, python-format +msgid "" +"Tcos Sound levels on:\n" +"%s" +msgstr "" +"les niveaux de Tcos Sound sont :\n" +"%s" + +#: ../tcos-volume-manager.py:117 +#, python-format +msgid "ERROR: It appears that TcosXmlRpc is not running on %s." +msgstr "ERREUR: il apparat que TcosXmlRpc n'est pas lanc sur %s" + +#: ../tcos-volume-manager.py:139 ../tcos-devices-ng.py:281 +#, python-format +msgid "Error connecting with TcosXmlRpc in %s." +msgstr "" +"Une erreur s'est produite lors de la connexion avec TcosXmlRpc dans %s." + +#: ../tcos-volume-manager.py:213 +msgid "Loading channels info..." +msgstr "Chargement en cours des informations des canaux€" + +#: ../tcos-volume-manager.py:226 +msgid "Error loading channels info (xauth error)" +msgstr "" +"Une erreur s'est produite durant le chargement des informations des canaux " +"(erreur xauth)" + +#: ../tcos-volume-manager.py:229 ../ui/tcos-volume-manager.ui:8 +msgid "Tcos Volume Manager" +msgstr "Tcos Volume Manager" + +#: ../tcos-volume-manager.py:230 +#, python-format +msgid "Sound mixer of %s host" +msgstr "Mlangeur sonore de l' %s hte" + +#: ../tcos-volume-manager.py:296 ../tcosmonitor/extensions/info.py:440 +msgid "Mute" +msgstr "Muet" + +#: ../tcos-volume-manager.py:315 +msgid "Main controls ready" +msgstr "Les commandes principales sont prtes" + +#: ../tcos-volume-manager.py:319 +msgid "All remote controls loaded." +msgstr "Toutes les commandes distantes sont charges." + +#: ../tcos-volume-manager.py:328 ../tcosmonitor/extensions/info.py:556 +#, python-format +msgid "Changing value of %(channel)s channel, to %(value)s%%..." +msgstr "Changement en cours de la valeur du canal %(channel)s, %(value)s%%€" + +#: ../tcos-volume-manager.py:335 ../tcosmonitor/extensions/info.py:563 +#, python-format +msgid "Changed value of %(channel)s channel, to %(value)s" +msgstr "La valeur du canal %(channel)s a t change %(value)s" + +#: ../tcos-volume-manager.py:342 ../tcosmonitor/extensions/info.py:570 +#, python-format +msgid "Unmuting %s channel..." +msgstr "Dsactivation de la sourdine du canal %s€" + +#: ../tcos-volume-manager.py:347 ../tcosmonitor/extensions/info.py:575 +#, python-format +msgid "Muting %s channel..." +msgstr "Activation de la sourdine pour le canal %s€" + +#: ../tcos-volume-manager.py:350 ../tcosmonitor/extensions/info.py:578 +#, python-format +msgid "Status of %(channel)s channel, is \"%(newvalue)s\"" +msgstr "Le statut du %(channel)s canal, est %(newvalue)s" + +#: ../tcos-volume-manager.py:374 ../tcosmonitor.py:340 +#: ../tcospersonalize.py:556 +msgid "Exiting" +msgstr "Clture en cours" + +#: ../tcosmonitor/ping.py:86 ../tcosmonitor/ping.py:168 +#: ../tcosmonitor/ping.py:265 ../tcosmonitor/ping.py:326 +#: ../tcosmonitor/LocalData.py:278 +msgid "Testing if found clients have 8998 or 8999 port open..." +msgstr "" +"Test en cours pour savoir si les clients trouvs ont les ports 8998 et 8999 " +"ouverts€" + +#: ../tcosmonitor/ping.py:153 +#, python-format +msgid "Checking %s..." +msgstr "Vrification de %s€" + +#: ../tcosmonitor/ping.py:187 ../tcosmonitor/ping.py:284 +#: ../tcosmonitor/ping.py:347 ../tcosmonitor/TcosActions.py:119 +#: ../tcosmonitor/TcosActions.py:202 ../tcosmonitor/TcosActions.py:220 +msgid "Not connected hosts found." +msgstr "Des htes non connects ont t trouvs." + +#: ../tcosmonitor/ping.py:195 ../tcosmonitor/ping.py:292 +#: ../tcosmonitor/ping.py:352 ../tcosmonitor/TcosActions.py:121 +#: ../tcosmonitor/TcosActions.py:206 ../tcosmonitor/TcosActions.py:214 +#, python-format +msgid "Found %d hosts" +msgstr "%d htes trouvs" + +#: ../tcosmonitor/ping.py:229 +#, python-format +msgid "Ping to %s..." +msgstr "Ping vers %s€" + +#: ../tcosmonitor/ping.py:243 +msgid "Waiting for pings..." +msgstr "En attente des pings€" + +#: ../tcosmonitor/TcosCommon.py:85 +#, python-format +msgid "" +"ThreadController: Found error executing %(cmd)s\n" +"\n" +"If problem persist, disable Thread Controller\n" +"in Preferences and report bug.\n" +"Error=%(error)s" +msgstr "" +"Contrleur de processus: une erreur a t trouve lors de l'excution de " +"%(cmd)s\n" +"\n" +"Si le problme persiste, dsactivez le contrleur de processus\n" +"dans Prfrences et signaler un bogue.\n" +"Erreur=%(error)s" + +#: ../tcosmonitor/TcosCommon.py:180 ../tcosmonitor/TcosCommon.py:209 +#: ../tcosmonitor/TcosCommon.py:212 ../tcosmonitor/LocalData.py:40 +#: ../tcosmonitor/LocalData.py:60 ../tcosmonitor/extensions/info.py:135 +msgid "unknow" +msgstr "inconnu" + +#: ../tcosmonitor/TcosTrayIcon.py:47 ../tcosmonitor/extensions/vnc.py:296 +#: ../tcosmonitor/TcosTrayIcon2.py:49 ../ui/tcosmonitor-mainwindow.ui:23 +msgid "Quit" +msgstr "Quitter" + +#: ../tcosmonitor/TcosTrayIcon.py:52 ../tcosmonitor/shared.py:281 +#: ../tcosmonitor/extensions/reboot.py:37 ../tcosmonitor/TcosTrayIcon2.py:54 +msgid "Reboot" +msgstr "Redmarrage" + +#: ../tcosmonitor/TcosTrayIcon.py:53 ../tcosmonitor/shared.py:282 +#: ../tcosmonitor/extensions/reboot.py:39 ../tcosmonitor/TcosTrayIcon2.py:55 +msgid "Poweroff" +msgstr "Extinction" + +#: ../tcosmonitor/TcosTrayIcon.py:63 +msgid "TcosDevices" +msgstr "MachinesTcos" + +#: ../tcosmonitor/TcosTrayIcon.py:170 ../tcosmonitor/TcosTrayIcon.py:184 +#: ../tcosmonitor/TcosTrayIcon2.py:63 +msgid "Tcos Devices" +msgstr "Machines Tcos" + +#: ../tcosmonitor/TcosTrayIcon.py:230 ../tcosmonitor/TcosTrayIcon2.py:347 +msgid "Usb flash" +msgstr "Cl USB" + +#: ../tcosmonitor/TcosTrayIcon.py:232 ../tcosmonitor/TcosTrayIcon2.py:349 +msgid "Mount USB1" +msgstr "Monter USB1" + +#: ../tcosmonitor/TcosTrayIcon.py:233 ../tcosmonitor/TcosTrayIcon2.py:350 +msgid "Umount USB1" +msgstr "Dmonter USB1" + +#: ../tcosmonitor/shared.py:107 +msgid "Traditional list only" +msgstr "Liste traditionnelle uniquement" + +#: ../tcosmonitor/shared.py:108 +msgid "Icons only" +msgstr "Icnes seulement" + +#: ../tcosmonitor/shared.py:109 +msgid "Simulate classroom" +msgstr "Simuler une salle de classe" + +#: ../tcosmonitor/shared.py:110 +msgid "Lists, icons and classroom with tabs" +msgstr "Listes, icnes et salle de classe avec des tabulations" + +#: ../tcosmonitor/shared.py:270 ../tcosmonitor/shared.py:312 +#: ../tcosmonitor/TcosMenus.py:29 +msgid "Terminal actions" +msgstr "Actions de la console" + +#: ../tcosmonitor/shared.py:271 ../tcosmonitor/shared.py:313 +#: ../tcosmonitor/TcosMenus.py:30 +msgid "User actions" +msgstr "Actions de l'utilisateur" + +#: ../tcosmonitor/shared.py:272 ../tcosmonitor/shared.py:314 +#: ../tcosmonitor/TcosMenus.py:31 +msgid "Audio, video and files" +msgstr "Audio, vido et fichiers" + +#: ../tcosmonitor/shared.py:279 ../tcosmonitor/extensions/info.py:44 +msgid "Refresh terminal info" +msgstr "Rafrachir les informations de la console" + +#: ../tcosmonitor/shared.py:280 ../tcosmonitor/extensions/clean.py:37 +#: ../tcosmonitor/extensions/clean.py:38 +msgid "Clean info about terminal" +msgstr "Effacer les informations propos de la console" + +#: ../tcosmonitor/shared.py:283 ../tcosmonitor/extensions/lockscreen.py:37 +msgid "Lock screen" +msgstr "cran de verrouillage" + +#: ../tcosmonitor/shared.py:284 ../tcosmonitor/extensions/lockscreen.py:39 +msgid "Unlock screen" +msgstr "cran de dverrouillage" + +#: ../tcosmonitor/shared.py:285 ../tcosmonitor/extensions/italc.py:38 +msgid "Connect to remote screen (iTALC)" +msgstr "Connecter un cran distant (iTALC)" + +#: ../tcosmonitor/shared.py:286 ../tcosmonitor/extensions/vnc.py:50 +msgid "Connect to remote screen (VNC)" +msgstr "Connecter un cran distant (VNC)" + +#: ../tcosmonitor/shared.py:287 ../tcosmonitor/extensions/screenshot.py:42 +msgid "Screenshot" +msgstr "Capture d'cran" + +#: ../tcosmonitor/shared.py:288 ../tcosmonitor/extensions/remotessh.py:37 +msgid "Give a remote xterm" +msgstr "Donner un xterm distant" + +#: ../tcosmonitor/shared.py:289 +#: ../tcosmonitor/extensions/tcospersonalize.py:37 +#: ../ui/tcosmonitor-prefwindow.ui:1341 +msgid "Configure this host" +msgstr "Configurer cet utilisateur" + +#: ../tcosmonitor/shared.py:290 ../tcosmonitor/extensions/logout.py:37 +msgid "Logout client" +msgstr "Dconnecter le client" + +#: ../tcosmonitor/shared.py:291 ../tcosmonitor/extensions/restartxorg.py:38 +msgid "Restart X session with new settings" +msgstr "Redmarrer la session X avec les nouveaux rglages" + +#: ../tcosmonitor/shared.py:292 ../tcosmonitor/extensions/appsmsg.py:49 +msgid "Exec app on user display" +msgstr "Excuter une application sur l'affichage de l'utilisateur" + +#: ../tcosmonitor/shared.py:293 ../tcosmonitor/extensions/appsmsg.py:50 +msgid "Send a text message to user" +msgstr "Envoyer un message texte l'utilisateur" + +#: ../tcosmonitor/shared.py:294 ../tcosmonitor/extensions/viewproc.py:38 +msgid "Show running apps of this client" +msgstr "Afficher les applications lances de ce client" + +#: ../tcosmonitor/shared.py:295 ../tcosmonitor/shared.py:332 +msgid "Audio/Video broadcast" +msgstr "Diffusion Audio/Vido" + +#: ../tcosmonitor/shared.py:296 ../tcosmonitor/shared.py:333 +#: ../tcosmonitor/extensions/sendfiles.py:45 +#: ../tcosmonitor/extensions/sendfiles.py:46 +#: ../ui/tcosmonitor-mainwindow.ui:387 ../ui/tcosmonitor-prefwindow.ui:1151 +#: ../ui/tcosmonitor-prefwindow.ui:1492 +msgid "Send files" +msgstr "Envoyer des fichiers" + +#: ../tcosmonitor/shared.py:297 ../tcosmonitor/extensions/vnc.py:51 +msgid "Demo mode (from this host)" +msgstr "Mode de dmonstration (depuis cet hte)" + +#: ../tcosmonitor/shared.py:298 ../tcosmonitor/extensions/wakeonlan.py:38 +msgid "Boot client (WakeOnLan)" +msgstr "Client de dmarrage (WakeOnLan)" + +#: ../tcosmonitor/shared.py:299 +#: ../tcosmonitor/extensions/tcosnetcontroller.py:35 +msgid "Lock internet" +msgstr "Bloquer l'accs Internet" + +#: ../tcosmonitor/shared.py:300 +#: ../tcosmonitor/extensions/tcosnetcontroller.py:36 +msgid "Unlock internet" +msgstr "Dbloquer l'accs Internet" + +#: ../tcosmonitor/shared.py:301 ../tcosmonitor/extensions/dpms.py:37 +msgid "DPMS Power off monitor" +msgstr "teindre le moniteur avec DPMS" + +#: ../tcosmonitor/shared.py:302 ../tcosmonitor/extensions/dpms.py:39 +msgid "DPMS Power on monitor" +msgstr "Allumer le moniteur avec DPMS" + +#: ../tcosmonitor/shared.py:303 +msgid "Send MIC audio (from this host)" +msgstr "Envoyer du son Micro (depuis cet hte)" + +#: ../tcosmonitor/shared.py:321 ../tcosmonitor/extensions/reboot.py:38 +msgid "Reboot all clients" +msgstr "Redmarrer tous les clients" + +#: ../tcosmonitor/shared.py:322 ../tcosmonitor/extensions/reboot.py:40 +msgid "Poweroff all clients" +msgstr "teindre tous les clients" + +#: ../tcosmonitor/shared.py:323 ../tcosmonitor/extensions/lockscreen.py:38 +msgid "Lock all screens" +msgstr "Verrouiller tous les crans" + +#: ../tcosmonitor/shared.py:324 ../tcosmonitor/extensions/lockscreen.py:40 +msgid "Unlock all screens" +msgstr "Dverrouiller tous les crans" + +#: ../tcosmonitor/shared.py:325 ../tcosmonitor/extensions/logout.py:38 +msgid "Logout clients" +msgstr "Dconnecter les clients" + +#: ../tcosmonitor/shared.py:326 ../tcosmonitor/extensions/restartxorg.py:39 +msgid "Restart X session of all clients" +msgstr "Redmarrer les sessions X de tous les clients" + +#: ../tcosmonitor/shared.py:327 ../tcosmonitor/extensions/appsmsg.py:52 +msgid "Exec same app in all connected users" +msgstr "Excuter la mme application sur tous les utilisateurs connects" + +#: ../tcosmonitor/shared.py:328 ../tcosmonitor/extensions/appsmsg.py:53 +msgid "Send a text message to all connected users" +msgstr "Envoyer un message texte tous les utilisateurs connects" + +#: ../tcosmonitor/shared.py:329 ../tcosmonitor/extensions/vnc.py:53 +msgid "Enter demo mode, all connected users see my screen" +msgstr "" +"Entrer en mode dmonstration, tous les utilisateurs connects voient mon " +"cran" + +#: ../tcosmonitor/shared.py:330 +msgid "Enter conference mode, all connected users can hear me" +msgstr "" +"Entrer en mode confrence, tous les utilisateurs connects peuvent m'entendre" + +#: ../tcosmonitor/shared.py:331 ../tcosmonitor/extensions/screenshot.py:43 +msgid "Capture All clients screens" +msgstr "Capturer l'cran de tous les utilisateurs" + +#: ../tcosmonitor/shared.py:334 ../tcosmonitor/extensions/wakeonlan.py:39 +msgid "Boot All clients (WakeOnLan)" +msgstr "Dmarrer tous les clients (WakeOnLan)" + +#: ../tcosmonitor/shared.py:335 +#: ../tcosmonitor/extensions/tcosnetcontroller.py:38 +msgid "Lock internet in all connected users" +msgstr "Bloquer l'accs Internet de tous les utilisateurs connects." + +#: ../tcosmonitor/shared.py:336 +#: ../tcosmonitor/extensions/tcosnetcontroller.py:39 +msgid "Unlock internet in all connected users" +msgstr "Dbloquer l'accs Internet de tous les utilisateurs connects" + +#: ../tcosmonitor/shared.py:337 ../tcosmonitor/extensions/dpms.py:38 +msgid "DPMS Power off monitors" +msgstr "teindre les moniteurs avec DPMS" + +#: ../tcosmonitor/shared.py:338 ../tcosmonitor/extensions/dpms.py:40 +msgid "DPMS Power on monitors" +msgstr "Allumer les moniteurs avec DPMS" + +#: ../tcosmonitor/shared.py:339 +msgid "Chat audio conference" +msgstr "Confrence audio en ligne" + +#: ../tcosmonitor/shared.py:340 ../tcosmonitor/extensions/livevnc.py:47 +#: ../ui/tcosmonitor-prefwindow.ui:1359 +msgid "Live view screens with VNC" +msgstr "Voir les crans en direct avec VNC" + +#: ../tcosmonitor/shared.py:548 +#, python-format +msgid "QUESTION: %(txt)s, RESPONSE %(response)s" +msgstr "QUESTION: %(txt)s, RPONSE %(response)s" + +#: ../tcosmonitor/shared.py:565 ../tcosmonitor/shared.py:576 +#, python-format +msgid "INFO: %s" +msgstr "INFO: %s" + +#: ../tcosmonitor/shared.py:587 +#, python-format +msgid "ERROR: %s" +msgstr "ERREUR: %s" + +#: ../tcosmonitor/Initialize.py:201 +msgid "GPL-2 license file not found" +msgstr "Impossible de trouver un fichier de licence GPL-2 " + +#: ../tcosmonitor/TcosClassView.py:47 ../tcosmonitor/TcosIconView.py:43 +msgid "IP" +msgstr "IP" + +#: ../tcosmonitor/TcosClassView.py:48 ../tcosmonitor/TcosIconView.py:44 +#: ../tcosmonitor/TcosListView.py:60 +msgid "Hostname" +msgstr "Nom d'hte" + +#: ../tcosmonitor/TcosClassView.py:49 ../tcosmonitor/TcosIconView.py:45 +#: ../tcosmonitor/TcosListView.py:72 +msgid "Username" +msgstr "Nom d'utilisateur" + +#: ../tcosmonitor/TcosClassView.py:50 ../tcosmonitor/TcosIconView.py:46 +#: ../tcosmonitor/TcosListView.py:83 +msgid "Logged" +msgstr "Connect" + +#: ../tcosmonitor/TcosClassView.py:51 ../tcosmonitor/TcosIconView.py:47 +#: ../tcosmonitor/TcosListView.py:99 +msgid "Time log in" +msgstr "Temps de connexion" + +#: ../tcosmonitor/TcosClassView.py:52 ../tcosmonitor/TcosIconView.py:48 +msgid "Screen locked" +msgstr "cran verrouill" + +#: ../tcosmonitor/TcosClassView.py:53 ../tcosmonitor/TcosIconView.py:49 +msgid "Network locked" +msgstr "Rseau bloqu" + +#: ../tcosmonitor/TcosClassView.py:55 +msgid "" +"Place mouse on any computer to see brief info about it.\n" +"You can select and unselect multiple host clicking on every one.\n" +"Drag and drop hosts to positions and save clicking on right mouse button." +msgstr "" +"Veuillez dplacer la souris sur n'importe quel ordinateur pour obtenir un " +"bref rsum son propos.\n" +"Vous pouvez slectionner et dslectionner plusieurs htes en cliquant sur " +"chacun.\n" +"Glisser/Dposer les htes sur des positions et sauvegarder en cliquant sur " +"le bouton droit de la souris." + +#: ../tcosmonitor/TcosClassView.py:176 +msgid "Positions reset to defaults." +msgstr "Les positions ont t remises aux valeurs par dfaut." + +#: ../tcosmonitor/TcosClassView.py:194 +msgid "Positions saved." +msgstr "Positions enregistres." + +#: ../tcosmonitor/TcosClassView.py:323 +#, python-format +msgid "%s is not a valid file to exe or send" +msgstr "%s n'est pas un fichier valide excuter ou envoyer" + +#: ../tcosmonitor/TcosClassView.py:411 ../tcosmonitor/TcosIconView.py:152 +msgid "yes" +msgstr "oui" + +#: ../tcosmonitor/TcosClassView.py:413 ../tcosmonitor/TcosIconView.py:154 +msgid "no" +msgstr "non" + +#: ../tcosmonitor/TcosIconView.py:51 +msgid "Place mouse on any computer to see brief info about it." +msgstr "" +"Dplacez la souris sur n'importe quel ordinateur pour en voir un bref rsum." + +#: ../tcosmonitor/TcosExtensions.py:39 +msgid "Exception:" +msgstr "Exception:" + +#: ../tcosmonitor/TcosExtensions.py:75 +msgid "Error: no IP!" +msgstr "Erreur: pas d'IP!" + +#: ../tcosmonitor/TcosExtensions.py:156 +msgid "No clients connected, press refresh button." +msgstr "Pas de clients connects, veuillez appuyer sur le bouton rafrachir." + +#: ../tcosmonitor/TcosExtensions.py:261 ../tcosmonitor/TcosExtensions.py:263 +#, python-format +msgid "Can't exec this action at '%s' because you are connected at this host!" +msgstr "" +"Impossible d'excuter cette action %s car vous tes connect cet " +"hte!" + +#: ../tcosmonitor/TcosExtensions.py:277 +#, python-format +msgid "Doing action \"%(action)s\" in %(ip)s..." +msgstr "En train d'effectuer les actions %(action)s sur %(ip)s€" + +#: ../tcosmonitor/TcosExtensions.py:294 +#, python-format +msgid "Done action \"%(action)s\" in %(ip)s" +msgstr "Action %(action)s effectue sur %(ip)s€" + +#: ../tcosmonitor/TcosExtensions.py:347 ../tcosmonitor/extensions/vnc.py:288 +#: ../tcosmonitor/extensions/livevnc.py:68 +#: ../tcosmonitor/TcosPreferences.py:543 +msgid "Stop" +msgstr "Arrter" + +#: ../tcosmonitor/LocalData.py:213 ../tcosmonitor/LocalData.py:230 +#, python-format +msgid "Selected network inteface (%s) don't have IP address" +msgstr "L'interface rseau choisie (%s) ne possde pas d'adresse IP" + +#: ../tcosmonitor/LocalData.py:321 +msgid "" +"Static list method configured but no hosts in list.\n" +"\n" +"Please, open preferences, click on 'Open Static Host list' and add some " +"hosts." +msgstr "" +"Mthode par liste statique slectionne mais pas d'hte dans la liste.\n" +"\n" +"Veuillez ouvrir les prfrences, cliquer sur Ouvrir la liste des htes " +"statiques et ajouter des htes." + +#: ../tcosmonitor/extensions/vnc.py:64 ../tcosmonitor/extensions/vnc.py:108 +#: ../tcosmonitor/extensions/vnc.py:421 +#: ../tcosmonitor/extensions/audiortp.py:226 +#: ../tcosmonitor/extensions/audiortp.py:272 +#: ../tcosmonitor/extensions/audiortp.py:371 +#: ../tcosmonitor/extensions/audiortp.py:405 +#: ../tcosmonitor/extensions/audiortp.py:458 +#: ../tcosmonitor/extensions/sendfiles.py:200 +#: ../tcosmonitor/extensions/videolan.py:456 +#: ../tcosmonitor/extensions/tcosnetcontroller.py:110 +#: ../tcosmonitor/extensions/tcosnetcontroller.py:152 +msgid "No users logged." +msgstr "Pas d'utilisateur connect." + +#: ../tcosmonitor/extensions/vnc.py:67 +#, python-format +msgid "Do you want to start demo mode the following users: %s?" +msgstr "" +"Voulez-vous dmarrer le mode dmonstration pour les utilisateurs suivants: " +"%s?" + +#: ../tcosmonitor/extensions/vnc.py:79 +msgid "Waiting for start demo mode..." +msgstr "En attente du dmarrage du mode dmonstration€" + +#: ../tcosmonitor/extensions/vnc.py:94 ../tcosmonitor/extensions/vnc.py:406 +#: ../tcosmonitor/extensions/videolan.py:164 +#: ../tcosmonitor/extensions/videolan.py:364 +#: ../tcosmonitor/extensions/videolan.py:601 +msgid "Error while exec app" +msgstr "Erreur lors de l'excution de l'application" + +#: ../tcosmonitor/extensions/vnc.py:112 ../tcosmonitor/extensions/vnc.py:425 +#, python-format +msgid "Running in demo mode with %s clients." +msgstr "Mode dmonstration en cours pour les clients %s." + +#: ../tcosmonitor/extensions/vnc.py:123 +#, python-format +msgid "Running in demo mode from server. Demo N %s" +msgstr "Mode dmonstration en cours depuis le serveur. Dmonstration n%s" + +#: ../tcosmonitor/extensions/vnc.py:131 ../tcosmonitor/extensions/italc.py:46 +msgid "No user logged." +msgstr "Pas d'utilisateur connect." + +#: ../tcosmonitor/extensions/vnc.py:145 ../tcosmonitor/extensions/vnc.py:368 +#, python-format +msgid "Connecting with %s to start VNC support" +msgstr "Connexion en cours avec %s pour dmarrer l'assistance VNC" + +#: ../tcosmonitor/extensions/vnc.py:174 +#, python-format +msgid "" +"Can't start VNC, error:\n" +"%s" +msgstr "" +"Impossible de dmarrer VNC, erreur: \n" +"%s" + +#: ../tcosmonitor/extensions/vnc.py:178 +msgid "Waiting for start of VNC server..." +msgstr "En attente du dmarrage du serveur VNC€" + +#: ../tcosmonitor/extensions/vnc.py:209 +msgid "Can't start VNC, please add X11VNC support" +msgstr "Impossible de dmarrer VNC, veuillez ajouter le support X11VNC" + +#: ../tcosmonitor/extensions/vnc.py:235 +msgid "Switch to view only" +msgstr "Basculer sur vue uniquement" + +#: ../tcosmonitor/extensions/vnc.py:240 ../tcosmonitor/extensions/vnc.py:271 +msgid "Switch to full control" +msgstr "Basculer sur contrle total" + +#: ../tcosmonitor/extensions/vnc.py:267 +#, python-format +msgid "VNC host %s" +msgstr "Hte VNC %s" + +#: ../tcosmonitor/extensions/vnc.py:279 +msgid "Switch to fullscreen" +msgstr "Basculer en plein-cran" + +#: ../tcosmonitor/extensions/vnc.py:340 +msgid "Can't start demo mode, user is not logged" +msgstr "" +"Impossible de dmarrer le mode dmonstration, l'utilisateur n'est pas " +"connect" + +#: ../tcosmonitor/extensions/vnc.py:343 +#, python-format +msgid "Do you want demo mode from user %s?" +msgstr "Voulez-vous dmarrer le mode dmonstration depuis l'utilisateur %s?" + +#: ../tcosmonitor/extensions/vnc.py:391 +#, python-format +msgid "Waiting for start demo mode from user %s..." +msgstr "En attente du dmarrage du mode dmonstration depuis l'utilisateur %s€" + +#: ../tcosmonitor/extensions/vnc.py:445 +#, python-format +msgid "Running in demo mode from user %(host)s. Demo N %(count)s" +msgstr "" +"Mode dmonstration en cours depuis l'utilisateur %(host)s. Dmonstration " +"n%(count)s" + +#: ../tcosmonitor/extensions/vnc.py:501 +msgid "Demo mode off." +msgstr "Mode dmonstration arrt." + +#: ../tcosmonitor/extensions/info.py:88 +#, python-format +msgid "Connecting with %s to retrieve some info..." +msgstr "Connexion en cours avec %s pour rapatrier des informations€" + +#: ../tcosmonitor/extensions/info.py:114 +msgid "Tcos info" +msgstr "Informations propos de Tcos" + +#: ../tcosmonitor/extensions/info.py:117 +msgid "PXES info" +msgstr "Informations propos de PXE" + +#: ../tcosmonitor/extensions/info.py:120 +msgid "LTSP info" +msgstr "Informations propos de LTSP" + +#: ../tcosmonitor/extensions/info.py:123 +msgid "Standalone info" +msgstr "Informations propos du mode autonome" + +#: ../tcosmonitor/extensions/info.py:126 +msgid "Multiseat info" +msgstr "Information propos du multisige" + +#: ../tcosmonitor/extensions/info.py:129 +msgid "Unknow client info" +msgstr "Informations propos du client inconnu" + +#: ../tcosmonitor/extensions/info.py:138 +msgid "Hostname: " +msgstr "Nom d'hte: " + +#: ../tcosmonitor/extensions/info.py:139 +msgid "Ip address: " +msgstr "Adresse IP: " + +#: ../tcosmonitor/extensions/info.py:140 +msgid "TcosXmlRpc version: " +msgstr "Version de TcosXmlRpc: " + +#: ../tcosmonitor/extensions/info.py:149 +msgid "Tcos image version: " +msgstr "Version de l'image Tcos: " + +#: ../tcosmonitor/extensions/info.py:150 +msgid "Tcos image date: " +msgstr "Date de l'image Tcos: " + +#: ../tcosmonitor/extensions/info.py:151 +msgid "Date of thin client: " +msgstr "Date du client lger: " + +#: ../tcosmonitor/extensions/info.py:152 +msgid "Uptime: " +msgstr "Temps de disponibilit: " + +#: ../tcosmonitor/extensions/info.py:163 +msgid "Kernel info" +msgstr "Informations propos du noyau" + +#: ../tcosmonitor/extensions/info.py:172 +msgid "Force download and mount all modules" +msgstr "Forcer le tlchargement et monter tous les modules" + +#: ../tcosmonitor/extensions/info.py:183 +msgid "None" +msgstr "Aucun" + +#: ../tcosmonitor/extensions/info.py:186 +msgid "Kernel version: " +msgstr "Version du noyau: " + +#: ../tcosmonitor/extensions/info.py:187 +msgid "Kernel complete version: " +msgstr "Version complte du noyau: " + +#: ../tcosmonitor/extensions/info.py:188 +msgid "Loaded Modules: " +msgstr "Modules chargs: " + +#: ../tcosmonitor/extensions/info.py:189 +msgid "Modules not found: " +msgstr "Modules non trouvs: " + +#: ../tcosmonitor/extensions/info.py:205 +msgid "Cpu info: " +msgstr "Informations propos du processeur: " + +#: ../tcosmonitor/extensions/info.py:212 +msgid "Cpu model: " +msgstr "Modle de processeur: " + +#: ../tcosmonitor/extensions/info.py:213 +msgid "Cpu vendor: " +msgstr "Fabricant du processeur: " + +#: ../tcosmonitor/extensions/info.py:214 +msgid "Cpu speed: " +msgstr "Vitesse du processeur: " + +#: ../tcosmonitor/extensions/info.py:225 +msgid "PCI buses: " +msgstr "Bus PCI: " + +#: ../tcosmonitor/extensions/info.py:253 +msgid "Process running: " +msgstr "Processus en cours: " + +#: ../tcosmonitor/extensions/info.py:266 +msgid "Ram info: " +msgstr "Informations propos de la RAM: " + +#: ../tcosmonitor/extensions/info.py:273 +msgid "Total Ram: " +msgstr "Taille totale de la RAM: " + +#: ../tcosmonitor/extensions/info.py:274 +msgid "Free RAM: " +msgstr "RAM disponible: " + +#: ../tcosmonitor/extensions/info.py:275 +msgid "Active RAM: " +msgstr "RAM utilise: " + +#: ../tcosmonitor/extensions/info.py:278 +msgid "Swap info: " +msgstr "Informations propos de la partition d'change: " + +#: ../tcosmonitor/extensions/info.py:284 +msgid "Swap enabled: " +msgstr "Partition d'change active: " + +#: ../tcosmonitor/extensions/info.py:285 +msgid "Total Swap: " +msgstr "Taille totale de la partition d'change: " + +#: ../tcosmonitor/extensions/info.py:286 +msgid "Used Swap: " +msgstr "Taille de la partition d'change utilise: " + +#: ../tcosmonitor/extensions/info.py:296 +msgid "Network info: " +msgstr "Informations propos du rseau: " + +#: ../tcosmonitor/extensions/info.py:306 +msgid "Network hostname: " +msgstr "Nom d'hte rseau: " + +#: ../tcosmonitor/extensions/info.py:307 +msgid "Network IP: " +msgstr "Adresse IP rseau: " + +#: ../tcosmonitor/extensions/info.py:308 +msgid "Network MASK: " +msgstr "MASQUE rseau: " + +#: ../tcosmonitor/extensions/info.py:309 +msgid "Network MAC: " +msgstr "Adresse MAC rseau: " + +#: ../tcosmonitor/extensions/info.py:310 +msgid "Data received(rx): " +msgstr "Donnes reues (rx): " + +#: ../tcosmonitor/extensions/info.py:311 +msgid "Data send(tx): " +msgstr "Donnes envoyes(tx): " + +#: ../tcosmonitor/extensions/info.py:321 ../ui/tcosmonitor-prefwindow.ui:928 +msgid "Xorg info" +msgstr "Informations propos de Xorg" + +#: ../tcosmonitor/extensions/info.py:346 +msgid "enabled" +msgstr "activ" + +#: ../tcosmonitor/extensions/info.py:348 +msgid "disabled" +msgstr "dsactiv" + +#: ../tcosmonitor/extensions/info.py:351 ../ui/tcospersonalize.ui:159 +msgid "X Session Type" +msgstr "Type de Session X" + +#: ../tcosmonitor/extensions/info.py:353 ../ui/tcospersonalize.ui:201 +msgid "Xorg Driver" +msgstr "Pilote pour Xorg" + +#: ../tcosmonitor/extensions/info.py:355 ../ui/tcospersonalize.ui:94 +msgid "Xorg Resolution" +msgstr "Rsolution de Xorg" + +#: ../tcosmonitor/extensions/info.py:357 ../ui/tcospersonalize.ui:133 +msgid "Xorg Color depth" +msgstr "Profondeur de couleurs pour Xorg" + +#: ../tcosmonitor/extensions/info.py:359 ../ui/tcospersonalize.ui:179 +msgid "DPMS energy monitor control" +msgstr "Contrle de l'nergie du moniteur par DPMS" + +#: ../tcosmonitor/extensions/info.py:361 +msgid "Disable kill X with Ctrl+Alt+Backspace" +msgstr "Dsactiver l'arrt de X par Ctrl + Alt + Retour arrire" + +#: ../tcosmonitor/extensions/info.py:363 ../ui/tcospersonalize.ui:57 +msgid "Enable mouse wheel" +msgstr "Activer la roulette de la souris" + +#: ../tcosmonitor/extensions/info.py:365 +msgid "Refresh rate" +msgstr "Taux de rafrachissement" + +#: ../tcosmonitor/extensions/info.py:367 +msgid "Xorg font server" +msgstr "Serveur de polices pour Xorg" + +#: ../tcosmonitor/extensions/info.py:369 +msgid "Mouse device" +msgstr "Souris" + +#: ../tcosmonitor/extensions/info.py:371 +msgid "Mouse protocol" +msgstr "Protocole pour la souris" + +#: ../tcosmonitor/extensions/info.py:373 ../ui/tcospersonalize.ui:273 +msgid "X Horiz sync" +msgstr "Synchronisation horizontale pour X" + +#: ../tcosmonitor/extensions/info.py:375 ../ui/tcospersonalize.ui:284 +msgid "X Vert sync" +msgstr "Synchronisation verticale pour X" + +#: ../tcosmonitor/extensions/info.py:388 +msgid "PulseAudio Sound server is running" +msgstr "Le serveur de son PulseAudio est lanc" + +#: ../tcosmonitor/extensions/info.py:406 +msgid "Remote Sound Mixer" +msgstr "Mlangeur de son distant" + +#: ../tcosmonitor/extensions/info.py:479 +msgid "PulseAudio Control" +msgstr "Commande PulseAudio" + +#: ../tcosmonitor/extensions/info.py:484 +msgid "PulseAudio Meter" +msgstr "Vu-mtre PulseAudio" + +#: ../tcosmonitor/extensions/info.py:489 +msgid "PulseAudio Manager" +msgstr "Gestionnaire PulseAudio" + +#: ../tcosmonitor/extensions/info.py:493 +msgid "PulseAudio utils: " +msgstr "Utilitaires pour PulseAudio: " + +#: ../tcosmonitor/extensions/info.py:499 +msgid "PulseAudio stats" +msgstr "Statistiques pour PulseAudio" + +#: ../tcosmonitor/extensions/info.py:511 +msgid "Currently in use" +msgstr "Actuellement utilis" + +#: ../tcosmonitor/extensions/info.py:512 +msgid "Allocated during whole lifetime" +msgstr "Allou durant toute la dure de vie" + +#: ../tcosmonitor/extensions/info.py:513 +msgid "Sample cache size" +msgstr "Taille simple de cache" + +#: ../tcosmonitor/extensions/info.py:514 +msgid "User name" +msgstr "Nom d'utilisateur" + +#: ../tcosmonitor/extensions/info.py:515 +msgid "Host Name" +msgstr "Nom d'hte" + +#: ../tcosmonitor/extensions/info.py:516 +msgid "Server Name" +msgstr "Nom du serveur" + +#: ../tcosmonitor/extensions/info.py:517 +msgid "Server Version" +msgstr "Version du serveur" + +#: ../tcosmonitor/extensions/info.py:518 +msgid "Default Sample Specification" +msgstr "Spcification de l'chantillon par dfaut" + +#: ../tcosmonitor/extensions/info.py:519 +msgid "Default Sink" +msgstr "Sortie par dfaut" + +#: ../tcosmonitor/extensions/info.py:520 +msgid "Default Source" +msgstr "Source par dfaut" + +#: ../tcosmonitor/extensions/info.py:521 +msgid "Cookie" +msgstr "Cookie" + +#: ../tcosmonitor/extensions/info.py:527 +msgid "Sound server is not running" +msgstr "Le serveur de son n'est pas lanc" + +#: ../tcosmonitor/extensions/info.py:588 ../tcosmonitor/extensions/info.py:596 +#: ../tcosmonitor/extensions/info.py:604 +msgid "PulseAudio apps need /dev/shm." +msgstr "L'application PulseAudio ncessite /dev/shm." + +#: ../tcosmonitor/extensions/restartxorg.py:48 +#, python-format +msgid "Restart X session of %s with new config?" +msgstr "Redmarrer la session X de %s avec la nouvelle configuration?" + +#: ../tcosmonitor/extensions/restartxorg.py:61 +#, python-format +msgid "%s is not supported to restart Xorg!" +msgstr "%s ne gre pas le redmarrage Xorg!" + +#: ../tcosmonitor/extensions/restartxorg.py:75 +msgid "No thin clients found." +msgstr "Aucun client lger trouv." + +#: ../tcosmonitor/extensions/restartxorg.py:78 +#, python-format +msgid "Do you want to restart X screens (only thin clients):%s?" +msgstr "" +"Voulez-vous redmarrer les crans X (sur les clients lgers seulement): %s" + +#: ../tcosmonitor/extensions/wakeonlan.py:47 +#: ../tcosmonitor/extensions/wakeonlan.py:73 +msgid "" +"Wake On Lan only works with static list.\n" +"\n" +"Enable scan method \"static\" in Preferences\n" +"and (wake on lan) support in bios of clients." +msgstr "" +"le Rveil Par le Rseau ne fonctionne qu'avec une liste statique.\n" +"\n" +"Veuillez activer la mthode de scan statique dans Prfrences\n" +"et la gestion (rveil par le rseau) dans le BIOS des clients." + +#: ../tcosmonitor/extensions/wakeonlan.py:51 +#, python-format +msgid "Do you want boot %s client?" +msgstr "Voulez-vous dmarrer le client %s?" + +#: ../tcosmonitor/extensions/wakeonlan.py:65 +#: ../tcosmonitor/extensions/wakeonlan.py:90 +#, python-format +msgid "No register MAC address for ip: \"%s\"" +msgstr "Aucune adresse MAC enregistre pour l'adresse IP: %s" + +#: ../tcosmonitor/extensions/wakeonlan.py:69 +#: ../tcosmonitor/extensions/wakeonlan.py:97 +#, python-format +msgid "Not valid MAC address: \"%s\"" +msgstr "Adresse MAC non valide: %s" + +#: ../tcosmonitor/extensions/wakeonlan.py:77 +msgid "Do you want boot all clients?" +msgstr "Voulez-vous dmarrer tous les clients?" + +#: ../tcosmonitor/extensions/reboot.py:45 +#, python-format +msgid "Do you want to reboot: %s?" +msgstr "Voulez-vous redmarrer: %s?" + +#: ../tcosmonitor/extensions/reboot.py:48 +#: ../tcosmonitor/extensions/reboot.py:58 +#, python-format +msgid "Pc will reboot in %s seconds" +msgstr "Le PC redmarrera dans %s secondes" + +#: ../tcosmonitor/extensions/reboot.py:55 +#, python-format +msgid "Do you want to reboot the following clients: %s?" +msgstr "Voulez-vous redmarrer les clients suivants: %s?" + +#: ../tcosmonitor/extensions/reboot.py:64 +#, python-format +msgid "Do you want to poweroff: %s?" +msgstr "Voulez-vous teindre: %s?" + +#: ../tcosmonitor/extensions/reboot.py:67 +#: ../tcosmonitor/extensions/reboot.py:77 +#, python-format +msgid "Pc will shutdown in %s seconds" +msgstr "Le PC va s'teindre dans %s secondes" + +#: ../tcosmonitor/extensions/reboot.py:74 +#, python-format +msgid "Do you want to poweroff the following clients: %s?" +msgstr "Voulez-vous teindre les clients suivants: %s?" + +#: ../tcosmonitor/extensions/reboot.py:105 +#: ../tcosmonitor/extensions/sendfiles.py:104 +#: ../tcosmonitor/extensions/sendfiles.py:185 +#: ../tcosmonitor/extensions/sendfiles.py:265 +#: ../tcosmonitor/extensions/videolan.py:191 +#: ../tcosmonitor/extensions/videolan.py:386 +#: ../tcosmonitor/extensions/videolan.py:628 +#, python-format +msgid "" +"Error while exec remote app:\n" +"Reason:%s" +msgstr "" +"Un erreur s'est produite lors de l'excution de l'application distante:\n" +"Raison: %s" + +#: ../tcosmonitor/extensions/audiortp.py:46 +#: ../ui/tcosmonitor-mainwindow.ui:163 +msgid "Send audio conference" +msgstr "Envoyer la confrence audio" + +#: ../tcosmonitor/extensions/audiortp.py:47 +#: ../ui/tcosmonitor-prefwindow.ui:1524 +msgid "Audio chat conference" +msgstr "Confrence audio en ligne" + +#: ../tcosmonitor/extensions/audiortp.py:48 +#: ../ui/tcosmonitor-mainwindow.ui:275 +msgid "Audio chat list" +msgstr "Liste des discussions en ligne" + +#: ../tcosmonitor/extensions/audiortp.py:49 +msgid "Send audio conference (from this host)" +msgstr "Envoyer la confrence audio (depuis cet hte)" + +#: ../tcosmonitor/extensions/audiortp.py:70 +msgid "Emission" +msgstr "mission" + +#: ../tcosmonitor/extensions/audiortp.py:76 +msgid "State" +msgstr "tat" + +#: ../tcosmonitor/extensions/audiortp.py:80 +msgid "Channel" +msgstr "Canal" + +#: ../tcosmonitor/extensions/audiortp.py:232 +#: ../tcosmonitor/extensions/audiortp.py:319 +#: ../tcosmonitor/extensions/audiortp.py:411 +msgid "" +"Your pulseaudio server is too old.\n" +"Is required pulseaudio version >= 0.9.10" +msgstr "" +"Votre serveur pulseaudio est trop ancien.\n" +"La version de pulseaudio ncessaire doit tre>=0.9.10" + +#: ../tcosmonitor/extensions/audiortp.py:235 +#, python-format +msgid "Do you want to start audio conference to the following users: %s?" +msgstr "" +"Voulez-vous dmarrer la confrence audio pour les utilisateurs suivants: " +"%s?" + +#: ../tcosmonitor/extensions/audiortp.py:240 +msgid "You have entered in audio conference" +msgstr "Vous tes entr en confrence audio" + +#: ../tcosmonitor/extensions/audiortp.py:264 +msgid "Waiting for start audio conference..." +msgstr "En attente du dmarrage de la confrence audio€" + +#: ../tcosmonitor/extensions/audiortp.py:292 +#: ../tcosmonitor/extensions/audiortp.py:388 +#, python-format +msgid "Running in audio conference with %s clients." +msgstr "Confrence audio en cours avec %sclients." + +#: ../tcosmonitor/extensions/audiortp.py:302 +#, python-format +msgid "Running in audio conference from server. Conference N %s" +msgstr "Confrence audio en cours depuis le serveur. Confrence n%s" + +#: ../tcosmonitor/extensions/audiortp.py:313 +msgid "Can't start conference mode, user is not logged" +msgstr "" +"Impossible de dmarrer le mode confrence, l'utilisateur n'est pas connect" + +#: ../tcosmonitor/extensions/audiortp.py:322 +#, python-format +msgid "Do you want audio conference from user %s?" +msgstr "Voulez-vous dmarrer une confrence audio avec l'utilisateur %s?" + +#: ../tcosmonitor/extensions/audiortp.py:329 +#, python-format +msgid "You have entered in audio conference from user %s" +msgstr "Vous avez rejoint la confrence audio avec l'utilisateur %s" + +#: ../tcosmonitor/extensions/audiortp.py:357 +#, python-format +msgid "Waiting for start audio conference from user %s..." +msgstr "En attente du dmarrage de la confrence audio avec l'utilisateur %s€" + +#: ../tcosmonitor/extensions/audiortp.py:398 +#, python-format +msgid "Running in audio conference from user %(host)s. Conference N %(count)s" +msgstr "" +"Confrence audio en cours avec l'utilisateur %(host)s. Confrence " +"n%(count)s" + +#: ../tcosmonitor/extensions/audiortp.py:414 +#, python-format +msgid "Do you want to start audio chat conference to the following users: %s?" +msgstr "" +"Voulez-vous dmarrer la confrence audio en ligne avec les utilisateurs " +"suivants: %s?" + +#: ../tcosmonitor/extensions/audiortp.py:419 +#, python-format +msgid "You have entered in audio chat conference. Participants: %s" +msgstr "Vous avez rejoint la confrence audio en ligne. Participants: %s" + +#: ../tcosmonitor/extensions/audiortp.py:441 +msgid "Waiting for start audio chat conference..." +msgstr "En attente du dmarrage de la confrence audio en ligne€" + +#: ../tcosmonitor/extensions/audiortp.py:447 +msgid "Do you want to connect to this audio chat conference now?" +msgstr "" +"Voulez-vous vous connecter cette confrence audio en ligne maintenant?" + +#: ../tcosmonitor/extensions/audiortp.py:481 +#, python-format +msgid "Running in audio chat conference with %s clients." +msgstr "Confrence audio en ligne en cours avec %sclients." + +#: ../tcosmonitor/extensions/audiortp.py:493 +#, python-format +msgid "Running in audio chat conference. Conference N %s" +msgstr "Confrence audio en ligne en cours. Confrence n%s" + +#: ../tcosmonitor/extensions/audiortp.py:519 +msgid "Conference mode off." +msgstr "Mode confrence arrt." + +#: ../tcosmonitor/extensions/audiortp.py:538 +msgid "Audio chat conference off." +msgstr "Confrence audio en ligne arrt." + +#: ../tcosmonitor/extensions/appsmsg.py:61 +msgid "Clients not connected" +msgstr "Clients non connects" + +#: ../tcosmonitor/extensions/appsmsg.py:84 +#, python-format +msgid "" +"Exec app in user(s) screen(s)\n" +"or open web address to:\n" +"%s" +msgstr "" +"Excuter une application sur le ou les crans du ou des utilisateurs\n" +"ou ouvrir une page Internet vers: \n" +"%s" + +#: ../tcosmonitor/extensions/appsmsg.py:86 +#, python-format +msgid "" +"Send a message to:\n" +"%s" +msgstr "" +"Envoyer un message :\n" +"%s" + +#: ../tcosmonitor/extensions/appsmsg.py:119 +#: ../tcosmonitor/extensions/appsmsg.py:160 +msgid "Can't exec application, user is not logged" +msgstr "Impossible d'excuter l'application, l'utilisateur n'est pas connect" + +#: ../tcosmonitor/extensions/appsmsg.py:138 +#: ../tcosmonitor/extensions/appsmsg.py:149 +#, python-format +msgid "%s is not a valid application" +msgstr "%s n'est pas une application valide" + +#: ../tcosmonitor/extensions/appsmsg.py:169 +msgid "Can't send message, user is not logged" +msgstr "Impossible d'envoyer un message, l'utilisateur n'est pas connect" + +#: ../tcosmonitor/extensions/appsmsg.py:286 +#: ../tcosmonitor/extensions/appsmsg.py:295 +#, python-format +msgid "%s is not application" +msgstr "%s n'est pas une application" + +#: ../tcosmonitor/extensions/appsmsg.py:350 +#, python-format +msgid "" +"Error while exec remote app:\n" +"Reason: %s" +msgstr "" +"Une erreur s'est produite lors de l'excution de l'application distante:\n" +"Raison: %s" + +#: ../tcosmonitor/extensions/appsmsg.py:357 +#, python-format +msgid "" +"Error while send message:\n" +"Reason: %s" +msgstr "" +"Une erreur s'est produite lors de l'envoi du message: \n" +"Raison: %s" + +#: ../tcosmonitor/extensions/livevnc.py:72 +msgid "Live view of all hosts" +msgstr "Vue en direct pour tous les htes" + +#: ../tcosmonitor/extensions/livevnc.py:193 +msgid "Running in LiveView mode" +msgstr "Mode Vue en Direct en cours" + +#: ../tcosmonitor/extensions/screenshot.py:63 +#: ../tcosmonitor/extensions/screenshot.py:80 +#, python-format +msgid "Can't make screenshot, error: %s" +msgstr "Impossible de raliser la capture d'cran, erreur: %s" + +#: ../tcosmonitor/extensions/screenshot.py:72 +msgid "Trying to order terminal to do a screenshot..." +msgstr "Essai d'enjoindre la console de raliser une capture d'cran€" + +#: ../tcosmonitor/extensions/screenshot.py:84 +msgid "Get another screenshot" +msgstr "Faire une autre capture d'cran" + +#: ../tcosmonitor/extensions/screenshot.py:101 +#, python-format +msgid "Screenshot of %s" +msgstr "Capture d'cran de %s" + +#: ../tcosmonitor/extensions/screenshot.py:124 +#, python-format +msgid "Screenshot of %s, done." +msgstr "Capture d'cran de %s, faite." + +#: ../tcosmonitor/extensions/screenshot.py:138 +msgid "Save Screenshot" +msgstr "Enregistrer la capture d'cran" + +#: ../tcosmonitor/extensions/screenshot.py:150 +msgid "Select file to save screenshot..." +msgstr "Veuillez slectionner un fichier pour enregistrer la capture d'cran€" + +#: ../tcosmonitor/extensions/screenshot.py:154 +#, python-format +msgid "screenshot_of_%(hostname)s_date_%(date)s.png" +msgstr "Capture d'cran_de_%(hostname)s_date_%(date)s.png" + +#: ../tcosmonitor/extensions/screenshot.py:158 +msgid "Image Files ( *.png, *.jpg)" +msgstr "Fichiers image (*.png, *.jpg)" + +#: ../tcosmonitor/extensions/screenshot.py:168 +msgid "File must be png or jpg." +msgstr "Les fichiers doivent avoir l'extension png ou jpg." + +#: ../tcosmonitor/extensions/screenshot.py:191 +msgid "Screenshots of all hosts" +msgstr "Captures d'cran de tous les htes" + +#: ../tcosmonitor/extensions/screenshot.py:209 +#, python-format +msgid "Screenshot of %s" +msgstr "Capture d'cran de %s" + +#: ../tcosmonitor/extensions/italc.py:70 +msgid "Can't start IVS, please add iTALC support" +msgstr "Impossible de dmarrer IVS, veuillez ajouter le support iTALC" + +#: ../tcosmonitor/extensions/lockscreen.py:46 +#: ../tcosmonitor/extensions/lockscreen.py:54 +msgid "" +"Can't connect to tcosxmlrpc.\n" +"Please verify user and password in prefences!" +msgstr "" +"Impossible de se connecter tcosxmlrpc.\n" +"Veuillez vrifier l'utilisateur et son mot de passe dans les prfrences!" + +#: ../tcosmonitor/extensions/lockscreen.py:78 +#, python-format +msgid "Do you want to lock the following screens: %s?" +msgstr "Voulez-vous verrouiller les crans suivants: %s?" + +#: ../tcosmonitor/extensions/lockscreen.py:87 +#, python-format +msgid "Do you want to unlock the following screens: %s?" +msgstr "Voulez-vous dverrouiller les crans suivants: %s?" + +#: ../tcosmonitor/extensions/sendfiles.py:67 +#: ../tcosmonitor/extensions/sendfiles.py:120 +msgid "Can't send files, user is not logged" +msgstr "Impossible d'envoyer les fichiers, l'utilisateur n'est pas connect" + +#: ../tcosmonitor/extensions/sendfiles.py:71 +#: ../tcosmonitor/extensions/sendfiles.py:142 +#: ../tcosmonitor/extensions/sendfiles.py:222 +msgid "TcosMonitor: FTP+TLS server is not running." +msgstr "TcosMonitor: le serveur FTP+TLS n'est pas lanc." + +#: ../tcosmonitor/extensions/sendfiles.py:84 +#: ../tcosmonitor/extensions/sendfiles.py:161 +#: ../tcosmonitor/extensions/sendfiles.py:241 +msgid "Waiting for send files..." +msgstr "Attente de l'envoi des fichiers€" + +#: ../tcosmonitor/extensions/sendfiles.py:93 +#: ../tcosmonitor/extensions/sendfiles.py:94 +#: ../tcosmonitor/extensions/sendfiles.py:101 +#: ../tcosmonitor/extensions/sendfiles.py:108 +#: ../tcosmonitor/extensions/sendfiles.py:174 +#: ../tcosmonitor/extensions/sendfiles.py:175 +#: ../tcosmonitor/extensions/sendfiles.py:182 +#: ../tcosmonitor/extensions/sendfiles.py:189 +#: ../tcosmonitor/extensions/sendfiles.py:254 +#: ../tcosmonitor/extensions/sendfiles.py:255 +#: ../tcosmonitor/extensions/sendfiles.py:262 +#: ../tcosmonitor/extensions/sendfiles.py:269 +msgid "Teacher" +msgstr "Professeur" + +#: ../tcosmonitor/extensions/sendfiles.py:94 +#: ../tcosmonitor/extensions/sendfiles.py:108 +#: ../tcosmonitor/extensions/sendfiles.py:175 +#: ../tcosmonitor/extensions/sendfiles.py:189 +#: ../tcosmonitor/extensions/sendfiles.py:255 +#: ../tcosmonitor/extensions/sendfiles.py:269 +#, python-format +msgid "" +"Teacher has sent some files to %(teacher)s folder:\n" +"\n" +"%(basenames)s" +msgstr "" +"Le professeur a envoy des fichiers au rpertoire %(teacher)s: \n" +"\n" +"%(basenames)s" + +#: ../tcosmonitor/extensions/sendfiles.py:105 +#: ../tcosmonitor/extensions/sendfiles.py:186 +#: ../tcosmonitor/extensions/sendfiles.py:266 +msgid "Error creating destination folder." +msgstr "" +"Une erreur s'est produite lors de la cration du rpertoire de destination." + +#: ../tcosmonitor/extensions/sendfiles.py:110 +#: ../tcosmonitor/extensions/sendfiles.py:190 +#: ../tcosmonitor/extensions/sendfiles.py:271 +msgid "Files sent." +msgstr "Les fichiers ont t envoys." + +#: ../tcosmonitor/extensions/sendfiles.py:125 +#: ../tcosmonitor/extensions/sendfiles.py:205 +msgid "Select file or files..." +msgstr "Veuillez slectionner le ou les fichiers€" + +#: ../tcosmonitor/extensions/sendfiles.py:163 +#: ../tcosmonitor/extensions/sendfiles.py:243 +msgid "Do you want open file(s) on client?" +msgstr "Voulez-vous ouvrir le/les fichier(s) sur le client?" + +#: ../tcosmonitor/extensions/dpms.py:76 +#, python-format +msgid "Do you want to switch off the following monitors: %s?" +msgstr "Voulez-vous teindre les moniteurs suivants: %s?" + +#: ../tcosmonitor/extensions/dpms.py:85 +#, python-format +msgid "Do you want to switch on the following monitors: %s?" +msgstr "Voulez-vous allumer les moniteurs suivants: %s?" + +#: ../tcosmonitor/extensions/viewproc.py:45 +msgid "Can't show runnings apps, user is not logged" +msgstr "" +"Impossible d'afficher les applications en cours, l'utilisateur n'est pas " +"connect" + +#: ../tcosmonitor/extensions/viewproc.py:55 +msgid "User not connected, no processes." +msgstr "Utilisateur non connect, pas de processus." + +#: ../tcosmonitor/extensions/viewproc.py:73 +#, python-format +msgid "Running processes for user \"%s\": " +msgstr "Processus en cours pour l'utilisateur %s:" + +#: ../tcosmonitor/extensions/viewproc.py:77 +msgid "" +"ALERT: There are some system process hidden. Enable it in Preferences dialog." +msgstr "" +"ALERTE: il y a des processus systmes cachs. Veuillez l'activer dans le " +"menu Prfrences." + +#: ../tcosmonitor/extensions/viewproc.py:82 +msgid "Pid" +msgstr "PID" + +#: ../tcosmonitor/extensions/viewproc.py:83 +msgid "Process command" +msgstr "Commande de processus" + +#: ../tcosmonitor/extensions/viewproc.py:88 +msgid "Kill this process" +msgstr "Tuer ce processus" + +#: ../tcosmonitor/extensions/viewproc.py:125 +msgid "Are you sure you want to stop this process?" +msgstr "tes-vous sur de vouloir arrter ce processus?" + +#: ../tcosmonitor/extensions/viewproc.py:134 +#, python-format +msgid "" +"Error while killing app:\n" +"Reason: %s" +msgstr "" +"Erreur lors de l'arrt de l'application: \n" +"Raison: %s" + +#: ../tcosmonitor/extensions/videolan.py:45 +#: ../tcosmonitor/extensions/videolan.py:46 +msgid "Send Audio/Video broadcast" +msgstr "Envoyer la diffusion Audio/Vido" + +#: ../tcosmonitor/extensions/videolan.py:62 +#: ../tcosmonitor/extensions/videolan.py:216 +msgid "Can't send video broadcast, user is not logged" +msgstr "" +"Impossible d'envoyer la diffusion vido, l'utilisateur n'est pas connect" + +#: ../tcosmonitor/extensions/videolan.py:146 +#: ../tcosmonitor/extensions/videolan.py:344 +#: ../tcosmonitor/extensions/videolan.py:577 +#, python-format +msgid "" +"Not allowed white spaces in \"%s\".\n" +"Please rename it." +msgstr "" +"Les espaces blancs ne sont pas autoriss dans %s.\n" +"Veuillez le renommer." + +#: ../tcosmonitor/extensions/videolan.py:156 +#: ../tcosmonitor/extensions/videolan.py:356 +#: ../tcosmonitor/extensions/videolan.py:593 +msgid "Waiting for start video transmission..." +msgstr "En attente du dmarrage de la transmission vido€" + +#: ../tcosmonitor/extensions/videolan.py:196 +#: ../tcosmonitor/extensions/videolan.py:390 +#: ../tcosmonitor/extensions/videolan.py:633 +msgid "Running in broadcast video transmission." +msgstr "Transmission vido en cours" + +#: ../tcosmonitor/extensions/videolan.py:205 +#: ../tcosmonitor/extensions/videolan.py:399 +#, python-format +msgid "" +"Running in broadcast video transmission to user %(host)s. Broadcast N " +"%(count)s" +msgstr "" +"Transmission vido en cours pour l'utilisateur %(host)s. Diffusion " +"n%(count)s" + +#: ../tcosmonitor/extensions/videolan.py:308 +#: ../tcosmonitor/extensions/videolan.py:540 +msgid "Select audio/video file.." +msgstr "Slectionner un fichier audio/vido" + +#: ../tcosmonitor/extensions/videolan.py:311 +#: ../tcosmonitor/extensions/videolan.py:543 +msgid "Play DVD" +msgstr "Jouer le DVD" + +#: ../tcosmonitor/extensions/videolan.py:312 +#: ../tcosmonitor/extensions/videolan.py:544 +msgid "Play SVCD/VCD" +msgstr "Jouer le SVCD/VCD" + +#: ../tcosmonitor/extensions/videolan.py:313 +#: ../tcosmonitor/extensions/videolan.py:545 +msgid "Play AudioCD" +msgstr "Jouer le disque audio" + +#: ../tcosmonitor/extensions/videolan.py:358 +#: ../tcosmonitor/extensions/videolan.py:595 +msgid "" +"First select the DVD chapter or play movie\n" +"then press enter to send clients..." +msgstr "" +"Veuillez d'abord slectionner le chapitre du DVD ou jouer le film\n" +"puis appuyer sur entre pour l'envoyer aux clients€" + +#: ../tcosmonitor/extensions/videolan.py:367 +msgid "Lock keyboard and mouse on client?" +msgstr "Verrouiller le clavier et la souris sur le client?" + +#: ../tcosmonitor/extensions/videolan.py:443 +msgid "Video broadcast stopped." +msgstr "Diffusion vido arrte." + +#: ../tcosmonitor/extensions/videolan.py:604 +msgid "Lock keyboard and mouse on clients?" +msgstr "Verrouiller le clavier et la souris sur les clients?" + +#: ../tcosmonitor/extensions/videolan.py:642 +#, python-format +msgid "Running in broadcast video transmission. Broadcast N %s" +msgstr "Transmission vido en cours. Diffusion n%s" + +#: ../tcosmonitor/extensions/remotessh.py:44 +msgid "Enter password of remote thin client (if asked for it)" +msgstr "" +"Veuillez entrer le mot de passe du client lger distant (si on vous le " +"demande)" + +#: ../tcosmonitor/extensions/logout.py:45 +#: ../tcosmonitor/extensions/logout.py:68 +msgid "User not logged" +msgstr "Utilisateur non connect" + +#: ../tcosmonitor/extensions/logout.py:48 +#, python-format +msgid "Do you want to logout user: %s?" +msgstr "Voulez-vous dconnecter l'utilisateur: %s?" + +#: ../tcosmonitor/extensions/logout.py:52 +#: ../tcosmonitor/extensions/logout.py:74 +#, python-format +msgid "Session will close in %s seconds" +msgstr "La session sera ferme dans %s secondes" + +#: ../tcosmonitor/extensions/logout.py:70 +#, python-format +msgid "Do you want to logout the following users: %s?" +msgstr "Voulez-vous dconnecter les utilisateurs suivants: %s?" + +#: ../tcosmonitor/extensions/tcosnetcontroller.py:47 +#: ../tcosmonitor/extensions/tcosnetcontroller.py:106 +msgid "Internet connection has been disabled" +msgstr "La connexion Internet a t dsactive" + +#: ../tcosmonitor/extensions/tcosnetcontroller.py:51 +msgid "Can't disable internet, user is not logged" +msgstr "" +"Impossible de dsactiver la connexion Internet, l'utilisateur n'est pas " +"connect" + +#: ../tcosmonitor/extensions/tcosnetcontroller.py:56 +#: ../tcosmonitor/extensions/tcosnetcontroller.py:82 +#: ../tcosmonitor/extensions/tcosnetcontroller.py:100 +#: ../tcosmonitor/extensions/tcosnetcontroller.py:144 +#, python-format +msgid "" +"In order to lock and unlock internet you need to be in 'tcos' group.\n" +"\n" +"Exe by root: adduser %s tcos" +msgstr "" +"Afin de dverrouiller la connexion Internet vous devez faire partie du " +"groupe tcos.\n" +"\n" +"Excutez par le superutilisateur: adduser %s tcos" + +#: ../tcosmonitor/extensions/tcosnetcontroller.py:74 +#: ../tcosmonitor/extensions/tcosnetcontroller.py:148 +msgid "Internet connection has been enabled" +msgstr "La connexion Internet a t active" + +#: ../tcosmonitor/extensions/tcosnetcontroller.py:78 +msgid "Can't enable internet, user is not logged" +msgstr "" +"Impossible d'activer la connexion Internet, l'utilisateur n'est pas connect" + +#: ../tcosmonitor/extensions/tcosnetcontroller.py:113 +#, python-format +msgid "Do you want disable internet to following users: %s?" +msgstr "" +"Voulez-vous dsactiver la connexion Internet pour les utilisateurs " +"suivants: %s?" + +#: ../tcosmonitor/extensions/tcosnetcontroller.py:155 +#, python-format +msgid "Do you want enable internet to following users: %s?" +msgstr "" +"Voulez-vous activer la connexion Internet pour les utilisateurs suivants: " +"%s?" + +#: ../tcosmonitor/extensions/tcospersonalize.py:51 +#, python-format +msgid "%s is not supported to personalize!" +msgstr "%s ne gre pas la personnalisation!" + +#: ../tcosmonitor/TcosMenus.py:97 ../tcosmonitor/TcosMenus.py:109 +#, python-format +msgid "Actions for %s" +msgstr "Actions pour %s" + +#: ../tcosmonitor/TcosMenus.py:102 +msgid "Actions for selected host" +msgstr "Actions pour l'hte slectionn" + +#: ../tcosmonitor/TcosMenus.py:163 ../tcosmonitor/TcosMenus.py:232 +#, python-format +msgid "%d hidden actions" +msgstr "%d actions caches" + +#: ../tcosmonitor/TcosMenus.py:176 ../tcosmonitor/TcosMenus.py:178 +msgid "Actions for selected hosts" +msgstr "Actions pour les htes slectionns" + +#: ../tcosmonitor/TcosMenus.py:180 +msgid "Actions for all hosts" +msgstr "Actions pour tous les htes" + +#: ../tcosmonitor/TcosMenus.py:237 +msgid "Save hosts positions" +msgstr "Enregistrer la position des htes" + +#: ../tcosmonitor/TcosMenus.py:245 +msgid "Reset hosts positions" +msgstr "Rinitialiser la position des htes" + +#: ../tcosmonitor/TcosDBus.py:82 +msgid "TcosDBus not allowed in local display" +msgstr "TcosDBus n'est pas autoris sur l'affichage local" + +#: ../tcosmonitor/TcosDBus.py:110 +#, python-format +msgid "Seems that tcosxmlrpc isn't running on host=\"%s\"" +msgstr "Il semble que tcosxmlrpc n'est pas lanc sur l'hte=%s" + +#: ../tcosmonitor/TcosDBus.py:131 +msgid "tcosxmlrpc ERROR conection unavalaible." +msgstr "ERREUR tcosxmlrpc, la connexion n'est pas disponible." + +#: ../tcosmonitor/TcosDBus.py:147 +msgid "ERROR conecting to tcosxmlrpc, check username and password." +msgstr "" +"ERREUR durant la connexion tcosxmlrpc, veuillez vrifier le nom " +"d'utilisateur et le mot de passe." + +#: ../tcosmonitor/TcosDBus.py:293 +msgid "Message from admin" +msgstr "Message de la part de l'administrateur" + +#: ../tcosmonitor/TcosDBus.py:382 ../tcosmonitor/TcosDBus.py:398 +#: ../tcosmonitor/TcosDBus.py:414 ../tcosmonitor/TcosDBus.py:432 +#: ../tcosmonitor/TcosDBus.py:450 +msgid "User not allowed to run this dbus call." +msgstr "L'utilisateur n'est pas autoris excuter cet appel dbus." + +#: ../tcosmonitor/TcosPreferences.py:264 +msgid "" +"You have select more than 5 button menus.\n" +"Only allowed to select a maximum of 5 buttons." +msgstr "" +"Vous avez slectionn plus de 5boutons de menu.\n" +"Il n'est permis d'en slectionner qu'au plus 5." + +#: ../tcosmonitor/TcosPreferences.py:275 +msgid "New settings saved." +msgstr "Nouveaux rglages enregistrs." + +#: ../tcosmonitor/TcosStaticHosts.py:148 ../tcosmonitor/TcosListView.py:66 +msgid "IP address" +msgstr "Adresse IP" + +#: ../tcosmonitor/TcosStaticHosts.py:154 +#: ../ui/tcosmonitor-staticwindownew.ui:68 +msgid "MAC address" +msgstr "Adresse MAC" + +#: ../tcosmonitor/TcosStaticHosts.py:264 +msgid "No hosts found, please click on Refresh button using another method." +msgstr "" +"Aucun hte n'a pu tre trouv, veuillez appuyer sur le bouton Rafrachir en " +"utilisant une autre mthode." + +#: ../tcosmonitor/TcosXmlRpc.py:75 +msgid "" +"Username or password are empty,\n" +"please edit in preferences dialog!" +msgstr "" +"Le nom d'utilisateur et le mot de passe sont vides, \n" +"veuillez les modifier dans le menu prfrences!" + +#: ../tcosmonitor/TcosListView.py:78 +msgid "Active" +msgstr "Actif" + +#: ../tcosmonitor/TcosListView.py:88 +msgid "Screen Blocked" +msgstr "cran bloqu" + +#: ../tcosmonitor/TcosListView.py:93 +msgid "Num of process" +msgstr "Numro de processus" + +#: ../tcosmonitor/TcosListView.py:108 +msgid "Sel" +msgstr "Slection" + +#: ../tcosmonitor/TcosListView.py:144 +#, python-format +msgid "Error connecting to tcosxmlrpc in %s" +msgstr "Une erreur s'est produite lors la connexion tcosxmlrpc dans %s" + +#: ../tcosmonitor/TcosTrayIcon2.py:150 +#, python-format +msgid "Floppy: %s" +msgstr "Lecteur de disquette: %s" + +#: ../tcosmonitor/TcosTrayIcon2.py:152 +#, python-format +msgid "CDROM: %s" +msgstr "CD: %s" + +#: ../tcosmonitor/TcosTrayIcon2.py:154 +#, python-format +msgid "USB: %s" +msgstr "USB: %s" + +#: ../tcosmonitor/TcosTrayIcon2.py:156 +#, python-format +msgid "HDD partition: %s" +msgstr "Partition HDD: %s" + +#: ../tcosmonitor/TcosTrayIcon2.py:158 +#, python-format +msgid "Unknow: %s" +msgstr "Inconnu: %s" + +#: ../tcosmonitor/TcosActions.py:92 ../tcosmonitor/TcosActions.py:184 +msgid "Searching for connected hosts..." +msgstr "Recherche des htes connects€" + +#: ../tcosmonitor/TcosActions.py:258 +msgid "Searching info of hosts..." +msgstr "Recherche des informations sur les htes€" + +#: ../tcosmonitor/TcosActions.py:297 +#, python-format +msgid "Connecting to %s..." +msgstr "Connexion en cours %s€" + +#: ../tcosmonitor/TcosActions.py:331 +#, python-format +msgid "Found %(len)d hosts, %(ex)d hosts excluded" +msgstr "%(len)dhtes ont t trouvs, %(ex)dhtes ont t exclus" + +#: ../tcos-devices-ng.py:185 +#, python-format +msgid "Rebooting in %s seconds" +msgstr "Redmarrage dans %s secondes" + +#: ../tcos-devices-ng.py:187 +#, python-format +msgid "Shutting down in %s seconds" +msgstr "Extinction dans %s secondes" + +#: ../tcos-devices-ng.py:203 ../tcos-devices-ng.py:206 +#, python-format +msgid "" +"ERROR during action %(action)s:\n" +"%(errortxt)s" +msgstr "" +"ERREUR durant l'action %(action)s:\n" +"%(errortxt)s" + +#: ../tcos-devices-ng.py:236 +msgid "Tcos device daemon" +msgstr "Dmon pour la machine Tcos" + +#: ../tcos-devices-ng.py:271 +msgid "" +"TCOS_DEVICES: Your user is not in group fuse and you can not use USB " +"devices. Please contact with your administrator." +msgstr "" +"TCOS_DEVICES: votre identifiant n'est pas dans le groupe fuse et vous ne " +"pouvez pas utiliser d'appareil USB. Veuillez contacter votre administrateur." + +#: ../tcos-devices-ng.py:315 +#, python-format +msgid "Cdrom device %s" +msgstr "Lecteur de CD %s" + +#: ../tcos-devices-ng.py:318 +msgid "Mount Cdrom" +msgstr "Monter le lecteur de CD" + +#: ../tcos-devices-ng.py:319 +msgid "Umount Cdrom" +msgstr "Dmonter le lecteur de CD" + +#: ../tcos-devices-ng.py:341 +#, python-format +msgid "Disk partition %s" +msgstr "Partition du disque %s" + +#: ../tcos-devices-ng.py:344 +msgid "Mount disk partition" +msgstr "Monter la partition du disque" + +#: ../tcos-devices-ng.py:345 +msgid "Umount disk partition" +msgstr "Dmonter la partition du disque" + +#: ../tcos-devices-ng.py:357 +msgid "No floppy detected" +msgstr "Aucun lecteur de disquette dtect" + +#: ../tcos-devices-ng.py:369 ../tcos-devices-ng.py:686 +#: ../tcos-devices-ng.py:692 ../tcos-devices-ng.py:698 +msgid "Floppy" +msgstr "Lecteur de disquette" + +#: ../tcos-devices-ng.py:372 +msgid "Mount Floppy" +msgstr "Monter le lecteur de disquette" + +#: ../tcos-devices-ng.py:373 +msgid "Umount Floppy" +msgstr "Dmonter le lecteur de disquette" + +#: ../tcos-devices-ng.py:383 +msgid "Floppy mounted. Ready for use." +msgstr "Le lecteur de disquette est mont et prt tre utilis." + +#: ../tcos-devices-ng.py:385 +msgid "Floppy umounted. You can extract it." +msgstr "Le lecteur de disquette est dmont. Vous pouvez la retirer." + +#: ../tcos-devices-ng.py:401 +msgid "Hard disk partition mounted. Ready for use." +msgstr "La partition du disque dur est monte et prte tre utilise." + +#: ../tcos-devices-ng.py:404 +msgid "Hard disk partition umounted." +msgstr "La partition du disque dur est dmonte." + +#: ../tcos-devices-ng.py:426 +msgid "Audio cdrom mounted., you can listen music opening wav files." +msgstr "" +"Le CD audio est mont, vous pouvez couter de la musique en ouvrant des " +"fichiers WAV." + +#: ../tcos-devices-ng.py:428 +msgid "Cdrom mounted. Ready for use." +msgstr "Le lecteur de CD est mont et prt tre utilis." + +#: ../tcos-devices-ng.py:431 +msgid "Cdrom umounted. You can extract it." +msgstr "Le lecteur de CD est dmont. Vous pouvez le retirer." + +#: ../tcos-devices-ng.py:541 +#, python-format +msgid "" +"Mounting device %s\n" +"Please wait..." +msgstr "" +"Montage en cours du priphrique %s\n" +"Veuillez patienter€" + +#: ../tcos-devices-ng.py:590 +msgid "Error mounting LTSPFS, check versions of LTSPFS packages" +msgstr "" +"Une erreur s'est produite lors du montage de LTSPFS, veuillez vrifier la " +"version des paquets LTSPFS" + +#: ../tcos-devices-ng.py:616 +#, python-format +msgid "" +"Umounting device %s.\n" +"Please wait..." +msgstr "" +"Montage en cours du priphrique %s.\n" +"Veuillez patienter€" + +#: ../tcos-devices-ng.py:663 +msgid "usbdisk" +msgstr "disque USB" + +#: ../tcos-devices-ng.py:665 +msgid "firewiredisk" +msgstr "disque firewire" + +#: ../tcos-devices-ng.py:690 +msgid "Can't mount floppy" +msgstr "Impossible de monter le lecteur de disquette" + +#: ../tcos-devices-ng.py:701 +msgid "Can't umount floppy" +msgstr "Impossible de dmonter le lecteur de disquette" + +#: ../tcos-devices-ng.py:714 ../tcos-devices-ng.py:724 +#: ../tcos-devices-ng.py:735 ../tcos-devices-ng.py:850 +#: ../tcos-devices-ng.py:862 ../tcos-devices-ng.py:881 +#: ../tcos-devices-ng.py:893 ../tcos-devices-ng.py:925 +#, python-format +msgid "Cdrom_%s" +msgstr "Cdrom_%s" + +#: ../tcos-devices-ng.py:722 +msgid "Can't mount cdrom" +msgstr "Impossible de monter le lecteur de CD" + +#: ../tcos-devices-ng.py:738 +msgid "Can't umount cdrom" +msgstr "Impossible de dmonter le lecteur de CD" + +#: ../tcos-devices-ng.py:756 ../tcos-devices-ng.py:766 +#: ../tcos-devices-ng.py:777 +#, python-format +msgid "Disk_%s" +msgstr "Disque_%s" + +#: ../tcos-devices-ng.py:764 +msgid "Can't mount hard disk partition" +msgstr "Impossible de monter la partition du disque dur" + +#: ../tcos-devices-ng.py:780 +msgid "Can't umount hard disk partition" +msgstr "Impossible de dmonter la partition du disque dur" + +#: ../tcos-devices-ng.py:821 +#, python-format +msgid "" +"From terminal %(host)s.\n" +"Connected CDROM USB device %(device)s\n" +"%(vendor)s %(model)s" +msgstr "" +"Depuis la console %(host)s.\n" +"Lecteur de CD USB %(device)s connect\n" +"%(vendor)s %(model)s" + +#: ../tcos-devices-ng.py:825 +#, python-format +msgid "CDROM USB device %s" +msgstr "Lecteur de CD USB %s" + +#: ../tcos-devices-ng.py:828 +#, python-format +msgid "Mount CDROM USB device %s" +msgstr "Monter le lecteur de CD USB %s" + +#: ../tcos-devices-ng.py:829 +#, python-format +msgid "Umount CDROM USB device %s" +msgstr "Dmonter le lecteur de CD USB %s" + +#: ../tcos-devices-ng.py:854 ../tcos-devices-ng.py:885 +#: ../tcos-devices-ng.py:1015 ../tcos-devices-ng.py:1026 +#: ../tcos-devices-ng.py:1072 ../tcos-devices-ng.py:1152 +#: ../tcos-devices-ng.py:1163 ../tcos-devices-ng.py:1209 +#, python-format +msgid "Error, can't mount device %s" +msgstr "Erreur, impossible de monter le lecteur %s" + +#: ../tcos-devices-ng.py:912 +#, python-format +msgid "" +"From terminal %(host)s.\n" +"Disconnected CDROM USB device %(device)s\n" +"%(vendor)s %(model)s" +msgstr "" +"Depuis la console %(host)s.\n" +"Lecteur de CD USB %(device)s dconnect\n" +"%(vendor)s %(model)s" + +#: ../tcos-devices-ng.py:940 +#, python-format +msgid "Can't umount cdrom usb %s" +msgstr "Impossible de dmonter le lecteur de CD USB %s" + +#: ../tcos-devices-ng.py:965 +#, python-format +msgid "" +"From terminal %(host)s.\n" +"Connected USB device %(device)s\n" +"%(vendor)s %(model)s" +msgstr "" +"Depuis la console %(host)s.\n" +"Priphrique USB %(device)s connect\n" +"%(vendor)s %(model)s" + +#: ../tcos-devices-ng.py:968 +#, python-format +msgid "" +"From terminal %(host)s.\n" +"Disconnected USB device %(device)s\n" +"%(vendor)s %(model)s" +msgstr "" +"Depuis la console %(host)s.\n" +"Priphrique USB %(device)s dconnect\n" +"%(vendor)s %(model)s" + +#: ../tcos-devices-ng.py:996 +#, python-format +msgid "USB device %s" +msgstr "Priphrique USB %s" + +#: ../tcos-devices-ng.py:999 +#, python-format +msgid "Mount USB device %s" +msgstr "Monter le priphrique USB %s" + +#: ../tcos-devices-ng.py:1000 +#, python-format +msgid "Umount USB device %s" +msgstr "Dmonter le priphrique USB %s" + +#: ../tcos-devices-ng.py:1102 +#, python-format +msgid "" +"From terminal %(host)s.\n" +"Connected Firewire device %(device)s\n" +"%(vendor)s %(model)s" +msgstr "" +"Depuis la console %(host)s.\n" +"Priphrique Firewire %(device)s connect\n" +"%(vendor)s %(model)s" + +#: ../tcos-devices-ng.py:1105 +#, python-format +msgid "" +"From terminal %(host)s.\n" +"Disconnected Firewire device %(device)s\n" +"%(vendor)s %(model)s" +msgstr "" +"Depuis la console %(host)s.\n" +"Priphrique Firewire %(device)s dconnect\n" +"%(vendor)s %(model)s" + +#: ../tcos-devices-ng.py:1133 +#, python-format +msgid "Firewire device %s" +msgstr "Priphrique Firewire %s" + +#: ../tcos-devices-ng.py:1136 +#, python-format +msgid "Mount Firewire device %s" +msgstr "Monter le priphrique Firewire %s" + +#: ../tcos-devices-ng.py:1137 +#, python-format +msgid "Umount Firewire device %s" +msgstr "Dmonter le priphrique Firewire %s" + +#: ../tcos-devices-ng.py:1220 +#, python-format +msgid "CDROM USB device %s umounted. You can extract it." +msgstr "Le lecteur de CD USB %s est dmont. Vous pouvez le retirer." + +#: ../tcos-devices-ng.py:1223 +#, python-format +msgid "CDROM USB device %s mounted. Ready for use." +msgstr "Le lecteur de CD USB %s est mont et prt tre utilis." + +#: ../tcos-devices-ng.py:1261 +#, python-format +msgid "USB device %s umounted. You can extract it." +msgstr "Le lecteur USB %s est dmont. Vous pouvez le retirer." + +#: ../tcos-devices-ng.py:1264 +#, python-format +msgid "USB device %s mounted. Ready for use." +msgstr "Le lecteur USB %s est mont et prt tre utilis." + +#: ../tcos-devices-ng.py:1300 +#, python-format +msgid "Firewire device %s umounted. You can extract it." +msgstr "Le lecteur Firewire %s est dmont. Vous pouvez le retirer." + +#: ../tcos-devices-ng.py:1303 +#, python-format +msgid "Firewire device %s mounted. Ready for use." +msgstr "Le lecteur Firewire %s est mont et prt tre utilis." + +#: ../tcosmonitor.py:164 +#, python-format +msgid "" +"The user \"%s\" must be member of the group \"tcos\" to exec tcosmonitor.\n" +"\n" +"If you are system administrator, add your user to tcos group." +msgstr "" +"L'utilisateur %s doit faire partie du groupe tcos pour excuter " +"tcosmonitor.\n" +"\n" +"Si vous tes administrateur du systme, veuillez ajouter votre utilisateur " +"au groupe tcos." + +#: ../tcospersonalize.py:113 +msgid "" +"Need a host to configure!!!\n" +"Try exec:\n" +" tcospersonalize --host=XXX.XXX.XXX.XXX" +msgstr "" +"Un hte doit exister pour tre configur!!!\n" +"Veuillez essayer d'excuter:\n" +" tcospersonalize --host=XXX.XXX.XXX.XXX" + +#: ../tcospersonalize.py:185 +msgid "host: " +msgstr "hte:" + +#: ../tcospersonalize.py:448 +msgid "Host down, can't connect to tcosxmlrpc." +msgstr "L'hte est hors-ligne, impossible de se connecter tcosxmlrpc." + +#: ../tcospersonalize.py:456 +#, python-format +msgid "New %d drivers loaded from terminal." +msgstr "Les nouveaux pilotes %d ont t chargs depuis la console." + +#: ../tcospersonalize.py:515 +#, python-format +msgid "Really delete config of %s?" +msgstr "tes-vous sr de vouloir effacer la configuration de %s?" + +#: ../tcospersonalize.py:518 +msgid "Deleted!" +msgstr "Effac!" + +#: ../ui/tcosmonitor-staticwindownew.ui:8 +msgid "New or edit hosts" +msgstr "Nouveau ou hte modifier" + +#: ../ui/tcosmonitor-staticwindownew.ui:32 +msgid "" +"You can add a simple host, \n" +" example: 192.168.0.100\n" +"\n" +"or range of hosts, \n" +" example: 192.168.0.100-120\n" +"\n" +"MAC address is optional" +msgstr "" +"Vous pouvez ajouter un hte simple, \n" +" exemple: 192.168.0.100\n" +"\n" +"ou un intervalle d'htes, \n" +" exemple: 192.168.0.100-120\n" +"\n" +"L'adresse MAC est optionnelle" + +#: ../ui/tcosmonitor-staticwindownew.ui:57 +msgid "IP address *" +msgstr "Adresse IP *" + +#: ../ui/tcosmonitor-staticwindownew.ui:150 +#: ../ui/tcosmonitor-mainwindow.ui:771 ../ui/tcosmonitor-staticwindow.ui:292 +msgid "Cancel" +msgstr "Annuler" + +#: ../ui/tcosmonitor-staticwindownew.ui:198 +#: ../ui/tcosmonitor-staticwindow.ui:340 +msgid "Save" +msgstr "Enregistrer" + +#: ../ui/tcos-volume-manager.ui:39 +msgid "Restart sound" +msgstr "Redmarrer le son" + +#: ../ui/tcos-volume-manager.ui:54 +msgid "Sound levels" +msgstr "Niveaux sonores" + +#: ../ui/tcos-volume-manager.ui:90 +msgid "Main Channels" +msgstr "Principaux canaux" + +#: ../ui/tcos-volume-manager.ui:113 +msgid "Secondary Channels" +msgstr "Canaux secondaires" + +#: ../ui/tray.ui:20 +msgid "TCOS devices" +msgstr "Machines TCOS" + +#: ../ui/tray.ui:57 +msgid "Hide" +msgstr "Cacher" + +#: ../ui/tcosmonitor-abouttcos.ui:6 +msgid "About TCOS" +msgstr "€ propos de TCOS" + +#: ../ui/tcosmonitor-abouttcos.ui:19 +msgid "TcosMonitor" +msgstr "TcosMonitor" + +#: ../ui/tcosmonitor-abouttcos.ui:62 +msgid "Version:" +msgstr "Version:" + +#: ../ui/tcosmonitor-abouttcos.ui:90 +msgid "" +"Thin client and standalone\n" +"monitoring tool." +msgstr "" +"Client lger et autonome\n" +"outil de supervision." + +#: ../ui/tcosmonitor-abouttcos.ui:131 +msgid "Project web site" +msgstr "Site Internet du projet" + +#: ../ui/tcosmonitor-abouttcos.ui:178 +msgid "About" +msgstr "€ propos" + +#: ../ui/tcosmonitor-abouttcos.ui:212 +msgid "License" +msgstr "Licence" + +#: ../ui/tcosmonitor-abouttcos.ui:230 +msgid "" +"Main developers:\n" +" * Mario Izquierdo \n" +" * Ignacio Vidal \n" +"\n" +"Contributors:\n" +" * Andrs Jimenez\n" +" * Quirn\n" +"\n" +"Special thanks to:\n" +" Comunidad de Madrid, MaX group (Spain)" +msgstr "" +"Principaux dveloppeurs: \n" +" * Mario Izquierdo \n" +" * Ignacio Vidal \n" +"\n" +"Contributeurs:\n" +" * Andrs Jimenez\n" +" * Quirn\n" +"\n" +"Remerciements : \n" +" Comunidad de Madrid, MaX group (Espagne)" + +#: ../ui/tcosmonitor-abouttcos.ui:259 +msgid "Authors" +msgstr "Auteurs" + +#: ../ui/tcosmonitor-abouttcos.ui:275 +msgid "Translated to your language by:" +msgstr "Traduit dans votre langue par : " + +#. put your name and mail +#: ../ui/tcosmonitor-abouttcos.ui:287 +msgid "Mario Izquierdo " +msgstr "" +"Julien Patriarca \n" +"\n" +"Remerciements :\n" +"L'quipe francophone de traduction Debian " + +#: ../ui/tcosmonitor-abouttcos.ui:307 +msgid "Translators" +msgstr "Traducteurs" + +#: ../ui/tcosmonitor-abouttcos.ui:324 +msgid "" +"TCOS is a free software project that need a lot of work to be the best thin " +"client plataform.\n" +"\n" +"We work every day a lot of hours to make changes and support more devices " +"and features.\n" +"\n" +"We want to continue developing this software but need your help, if you use, " +"sell or hack TCOS pehaps you could donate some money to project.\n" +"\n" +"Click on next url to get some info." +msgstr "" +"TCOS est un logiciel libre qui ncessite un gros travail pour tre la " +"meilleure plate-forme pour client lger.\n" +"\n" +"Nous travaillons chaque jour durant de longues heures pour faire des " +"changements et grer plus de machines et de fonctionnalits.\n" +"\n" +"Nous voulons continuer dvelopper ce logiciel mais avons besoin de votre " +"aide, si vous utilisez, vendez ou modifiez TCOS, peut-tre pourriez faire un " +"don au projet.\n" +"\n" +"Veuillez cliquer sur l'adresse suivante pour obtenir des informations." + +#. see wiki if translation is avalaible, ex in spanish: TcosProject:Site_support/es +#: ../ui/tcosmonitor-abouttcos.ui:370 +msgid "http://wiki.tcosproject.org/TcosProject:Site_support" +msgstr "http://wiki.tcosproject.org/TcosProject:Site_support" + +#: ../ui/tcosmonitor-abouttcos.ui:392 +msgid "Don't show donations message on start." +msgstr "Ne pas afficher les message concernant les dons au dmarrage." + +#: ../ui/tcosmonitor-abouttcos.ui:415 +msgid "Donate" +msgstr "Donner" + +#: ../ui/tcosmonitor-mainwindow.ui:8 +msgid "TcosMonitor" +msgstr "TcosMonitor" + +#: ../ui/tcosmonitor-mainwindow.ui:22 +msgid "Exit TcosMonitor" +msgstr "Sortir de TcosMonitor" + +#: ../ui/tcosmonitor-mainwindow.ui:35 +msgid "Open preferences dialog" +msgstr "Ouvrir la bote de dialogue des prfrences" + +#: ../ui/tcosmonitor-mainwindow.ui:36 ../ui/tcospersonalize.ui:7 +#: ../ui/tcosmonitor-prefwindow.ui:35 +msgid "Preferences" +msgstr "Prfrences" + +#: ../ui/tcosmonitor-mainwindow.ui:48 +msgid "Update host list" +msgstr "Mettre jour la liste des htes" + +#: ../ui/tcosmonitor-mainwindow.ui:49 +msgid "Refresh" +msgstr "Rafrachir" + +#: ../ui/tcosmonitor-mainwindow.ui:71 +msgid "All Hosts" +msgstr "Tous les htes" + +#: ../ui/tcosmonitor-mainwindow.ui:99 +msgid "Find" +msgstr "Trouver" + +#: ../ui/tcosmonitor-mainwindow.ui:111 +msgid "About this app" +msgstr "€ propos de cette application" + +#: ../ui/tcosmonitor-mainwindow.ui:219 +msgid "Start audio chat" +msgstr "Dmarrer le dialogue en ligne audio" + +#: ../ui/tcosmonitor-mainwindow.ui:331 +msgid "Send audio/video" +msgstr "Envoyer l'audio ou la vido" + +#: ../ui/tcosmonitor-mainwindow.ui:443 +msgid "Exe app" +msgstr "Excuter l'application" + +#: ../ui/tcosmonitor-mainwindow.ui:499 +msgid "Send message" +msgstr "Envoyer un message" + +#: ../ui/tcosmonitor-mainwindow.ui:581 +msgid "List view" +msgstr "Vue en liste" + +#: ../ui/tcosmonitor-mainwindow.ui:629 +msgid "Icon view" +msgstr "Vue par icnes" + +#: ../ui/tcosmonitor-mainwindow.ui:689 +msgid "Simulate my classroom" +msgstr "Simuler ma salle de classe" + +#: ../ui/tcosmonitor-staticwindow.ui:8 +msgid "Static hosts list" +msgstr "Liste des htes statiques" + +#: ../ui/tcosmonitor-staticwindow.ui:17 +msgid "Static Hosts list" +msgstr "Liste des htes statiques" + +#: ../ui/tcosmonitor-staticwindow.ui:80 +msgid "Add" +msgstr "Ajouter" + +#: ../ui/tcosmonitor-staticwindow.ui:128 +msgid "Modify" +msgstr "Modifier" + +#: ../ui/tcosmonitor-staticwindow.ui:176 +msgid "Delete" +msgstr "Effacer" + +#: ../ui/tcosmonitor-staticwindow.ui:225 +msgid "Get from connected" +msgstr "Obtenir depuis les connects" + +#: ../ui/tcospersonalize.ui:34 +msgid "unknow host" +msgstr "hte inconnu" + +#: ../ui/tcospersonalize.ui:74 +msgid "Disable Ctrl + Alt + Backspace (for kill Xorg)" +msgstr "Dsactiver Ctrl+Alt+Retour-arrire (pour arrter Xorg)" + +#: ../ui/tcospersonalize.ui:211 +msgid "Get avalaible drivers" +msgstr "Obtenir les pilotes disponibles" + +#: ../ui/tcospersonalize.ui:248 +msgid "Display Settings" +msgstr "Rglages d'affichage" + +#: ../ui/tcospersonalize.ui:333 ../ui/tcosmonitor-prefwindow.ui:670 +msgid "Advanced" +msgstr "Avanc" + +#: ../ui/tcospersonalize.ui:351 +msgid "Default boot kernel" +msgstr "Noyau de dmarrage par dfaut" + +#: ../ui/tcospersonalize.ui:376 +msgid "PXE Boot options" +msgstr "Options de Boot PXE" + +#: ../ui/tcospersonalize.ui:391 +msgid "Default boot method" +msgstr "Mthode de dmarrage par dfaut" + +#: ../ui/tcospersonalize.ui:419 +msgid "Command line" +msgstr "Ligne de commande" + +#: ../ui/tcospersonalize.ui:507 +msgid "Boot options" +msgstr "Options de dmarrage" + +#: ../ui/tcospersonalize.ui:551 +msgid "Delete Config" +msgstr "Effacer la configuration" + +#: ../ui/tcosmonitor-askwindow.ui:8 +msgid "Question" +msgstr "Question" + +#: ../ui/tcosmonitor-askwindow.ui:50 +msgid "You can drag and drop launcher file to this box" +msgstr "Vous pouvez glisser dposer le fichier de lancement dans cette bote" + +#: ../ui/tcosmonitor-askwindow.ui:61 +msgid "Run app in unknow host" +msgstr "Excuter l'application sur l'hte inconnu" + +#: ../ui/tcosmonitor-prefwindow.ui:62 +msgid "Show host list on startup" +msgstr "Afficher la liste des htes au dmarrage" + +#: ../ui/tcosmonitor-prefwindow.ui:80 +msgid "Scan network method" +msgstr "Mthode de balayage du rseau" + +#: ../ui/tcosmonitor-prefwindow.ui:91 +msgid "" +"Network interface\n" +"(thin client)" +msgstr "" +"Interface rseau\n" +"(client lger)" + +#: ../ui/tcosmonitor-prefwindow.ui:127 +msgid "Show system process" +msgstr "Afficher les processus du systme" + +#: ../ui/tcosmonitor-prefwindow.ui:144 +msgid "Don't do actions when running TcosMonitor in thin client" +msgstr "" +"Ne pas effectuer les actions lors du l'excution de TcosMonitor sur un " +"client lger" + +#: ../ui/tcosmonitor-prefwindow.ui:163 +msgid "List of hosts" +msgstr "Liste des htes" + +#: ../ui/tcosmonitor-prefwindow.ui:200 +msgid "Open static host list" +msgstr "Ouvrir la liste des htes statiques" + +#: ../ui/tcosmonitor-prefwindow.ui:225 +msgid "Only show hosts running tcosxmlrpc (8998 port)" +msgstr "N'afficher que les htes excutant tcosxmlrpc (port8998)" + +#: ../ui/tcosmonitor-prefwindow.ui:242 +msgid "Only do all actions on selected hosts (requires restart TcosMonitor)" +msgstr "" +"Ne lancer que l'ensemble des actions sur les htes slectionns (ncessite " +"le redmarrage de TcosMonitor)" + +#: ../ui/tcosmonitor-prefwindow.ui:259 +msgid "Enable SSL connections to XMLRPC clients" +msgstr "Activer les connexions SSL vers les clients XMLRPC" + +#: ../ui/tcosmonitor-prefwindow.ui:278 +msgid "Host list mode" +msgstr "Mode liste d'hte" + +#: ../ui/tcosmonitor-prefwindow.ui:302 +msgid "Show right menu with groups (NEW)" +msgstr "Afficher les groupes dans le menu de droite (nouveau)" + +#: ../ui/tcosmonitor-prefwindow.ui:319 +msgid "Don't show thin client if TcosMonitor is running there" +msgstr "" +"Ne pas afficher le client lger si TcosMonitor y est en cours d'excution" + +#: ../ui/tcosmonitor-prefwindow.ui:336 +msgid "Enable ConsoleKit to search users and times (experimental)" +msgstr "" +"Activez ConsoleKit pour chercher des utilisateurs et des priodes " +"(exprimental)" + +#: ../ui/tcosmonitor-prefwindow.ui:368 +msgid "Settings" +msgstr "Rglages" + +#: ../ui/tcosmonitor-prefwindow.ui:393 +msgid "Update host list every (seg)" +msgstr "Mettre jour la liste des htes chaque (seg)" + +#: ../ui/tcosmonitor-prefwindow.ui:406 +msgid "" +"Update host list every selected seconds.\n" +"\n" +"Value=0 disable update." +msgstr "" +"Mettre jour la liste des htes chaque x secondes slectionne.\n" +"\n" +"Valeur=0 dsactive la mise jour" + +#: ../ui/tcosmonitor-prefwindow.ui:422 +msgid "Cache timeout (seg)" +msgstr "Expiration du cache (seg)" + +#: ../ui/tcosmonitor-prefwindow.ui:436 +msgid "" +"Cache some data and connection status during selected seconds.\n" +"\n" +"Value=0 disable cache." +msgstr "" +"Mettre en cache des donnes et le statut de la connexion pendant la dure " +"(en secondes) slectionne.\n" +"\n" +"Valeur=0 dsactive la mise en cache." + +#: ../ui/tcosmonitor-prefwindow.ui:454 +msgid "Screenshot size:" +msgstr "Taille de la capture d'cran: " + +#: ../ui/tcosmonitor-prefwindow.ui:467 ../ui/tcosmonitor-prefwindow.ui:496 +msgid "% Size of screnshot." +msgstr "% Taille de la capture d'cran." + +#: ../ui/tcosmonitor-prefwindow.ui:483 +msgid "Mini screenshot size:" +msgstr "Taille minimum de la capture d'cran: " + +#: ../ui/tcosmonitor-prefwindow.ui:512 +msgid "Timeout actions (seg)" +msgstr "Expiration des actions (seg)" + +#: ../ui/tcosmonitor-prefwindow.ui:525 +msgid "" +"Timeout in seg for actions\n" +"\n" +"Value=0 default" +msgstr "" +"Dlai en secondes pour les actions\n" +"\n" +"Valeur=0 par dfaut" + +#: ../ui/tcosmonitor-prefwindow.ui:543 +msgid "SSH remote username" +msgstr "Nom d'utilisateur distant pour SSH" + +#: ../ui/tcosmonitor-prefwindow.ui:570 +msgid "VLC method to send" +msgstr "Mthode VLC envoyer" + +#: ../ui/tcosmonitor-prefwindow.ui:595 +msgid "" +"Experimental: Thread Controller\n" +"( if you have problems, disable it )" +msgstr "" +"Exprimental: contrleur de processus \n" +"(si vous rencontrez des problmes, dsactivez-le)" + +#: ../ui/tcosmonitor-prefwindow.ui:608 +msgid "Actions controlled" +msgstr "Actions contrles" + +#: ../ui/tcosmonitor-prefwindow.ui:628 +msgid "Block ports: (80,8080... etc)" +msgstr "Ports bloqus: (80, 8080,etc.)" + +#: ../ui/tcosmonitor-prefwindow.ui:697 +msgid "TcosXmlRpc username" +msgstr "Nom d'utilisateur pour TcosXmlRpc" + +#: ../ui/tcosmonitor-prefwindow.ui:723 +msgid "TcosXmlRpc password" +msgstr "Mot de passe pour TcosXmlRpc" + +#: ../ui/tcosmonitor-prefwindow.ui:752 +msgid "" +"NOTE:\n" +"Default user is root and default password is root.\n" +"\n" +"For thin clients change TCOS_ROOT_PASSWD or use TcosConfig and " +"regenerate boot images again.\n" +"\n" +"For standalone users you can use a system account (root) but this is " +"not recomended. Install tcos-standalone and start it by root. Set user and " +"password, this will create a /etc/tcospasswd file only used by TCOS " +"and your root acount will be secure." +msgstr "" +"NOTE:\n" +"Le nom d'utilisateur par dfaut est root et le mot de passe par " +"dfaut est root.\n" +"\n" +"Pour les clients lgers changez TCOS_ROOT_PASSWD ou utilisez " +"TcosConfig et rgnrez les images de dmarrage nouveau.\n" +"\n" +"Pour les utilisateurs autonomes vous pouvez utiliser un compte " +"systme (superutilisateur) mais ce n'est pas recommand. Veuillez installer " +"tcos-standalone et dmarrez le comme superutilisateur. Crez l'utilisateur " +"et le mot de passe, cela crera un fichier /etc/tcospasswd qui sera " +"utilis seulement par TCOS et votre compte superutilisateur sera scuris." + +#: ../ui/tcosmonitor-prefwindow.ui:789 +msgid "Authentication " +msgstr "Authentification" + +#: ../ui/tcosmonitor-prefwindow.ui:812 +msgid "Info avalaible from tcosxmlrpc" +msgstr "informations disponibles propos de tcosxmlrpc" + +#: ../ui/tcosmonitor-prefwindow.ui:823 +msgid "Tcos general info" +msgstr "Informations gnrales propos de Tcos" + +#: ../ui/tcosmonitor-prefwindow.ui:838 +msgid "Cpu info" +msgstr "Informations propos du processeur" + +#: ../ui/tcosmonitor-prefwindow.ui:853 +msgid "Kernel and modules info" +msgstr "Informations propos du noyau et des modules" + +#: ../ui/tcosmonitor-prefwindow.ui:868 +msgid "PCI bus info" +msgstr "Informations propos du bus PCI" + +#: ../ui/tcosmonitor-prefwindow.ui:883 +msgid "Ram and swap info" +msgstr "Informations propos de la RAM et de la partition d'change" + +#: ../ui/tcosmonitor-prefwindow.ui:898 +msgid "Process info" +msgstr "Informations propos des processus" + +#: ../ui/tcosmonitor-prefwindow.ui:913 +msgid "Network info" +msgstr "Informations propos du rseau" + +#: ../ui/tcosmonitor-prefwindow.ui:943 +msgid "Sound server info" +msgstr "Informations propos du serveur de son" + +#: ../ui/tcosmonitor-prefwindow.ui:979 +msgid "Avalaible info" +msgstr "Informations disponibles" + +#: ../ui/tcosmonitor-prefwindow.ui:1002 +msgid "Show / hide menu items" +msgstr "Afficher/cacher les entres du menu" + +#: ../ui/tcosmonitor-prefwindow.ui:1020 +msgid "Lock and unlock screen" +msgstr "Verrouiller et dverrouiller l'cran" + +#: ../ui/tcosmonitor-prefwindow.ui:1036 +msgid "Remote SSH shell" +msgstr "Terminal SSH distant" + +#: ../ui/tcosmonitor-prefwindow.ui:1054 +msgid "Configure Xorg settings" +msgstr "Configurer les paramtres de Xorg" + +#: ../ui/tcosmonitor-prefwindow.ui:1083 ../ui/tcosmonitor-prefwindow.ui:1444 +msgid "Exe app on user display" +msgstr "Excuter une application sur l'affichage de l'utilisateur" + +#: ../ui/tcosmonitor-prefwindow.ui:1099 ../ui/tcosmonitor-prefwindow.ui:1458 +msgid "Send a text message" +msgstr "Envoyer un message texte" + +#: ../ui/tcosmonitor-prefwindow.ui:1117 +msgid "Show running apps" +msgstr "Afficher les applications en cours" + +#: ../ui/tcosmonitor-prefwindow.ui:1133 ../ui/tcosmonitor-prefwindow.ui:1474 +msgid "Send video broadcast" +msgstr "Envoyer la diffusion vido" + +#: ../ui/tcosmonitor-prefwindow.ui:1167 +msgid "Demo mode" +msgstr "Mode dmonstration" + +#: ../ui/tcosmonitor-prefwindow.ui:1196 +msgid "Wake on LAN" +msgstr "Rveil par le rseau" + +#: ../ui/tcosmonitor-prefwindow.ui:1212 +msgid "Audio conference mode" +msgstr "Mode confrence audio" + +#: ../ui/tcosmonitor-prefwindow.ui:1230 +msgid "Screenshots" +msgstr "Captures d'cran" + +#: ../ui/tcosmonitor-prefwindow.ui:1246 +msgid "Reboot and poweroff" +msgstr "Redmarrer et teindre" + +#: ../ui/tcosmonitor-prefwindow.ui:1260 +msgid "Lock and unlock internet" +msgstr "Bloquer et dbloquer la connexion Internet" + +#: ../ui/tcosmonitor-prefwindow.ui:1276 +msgid "DPMS monitor on/off" +msgstr "Allumage et extinction du moniteur par DPMS" + +#: ../ui/tcosmonitor-prefwindow.ui:1294 +msgid "Connect using VNC" +msgstr "Se connecter en utilisant VNC" + +#: ../ui/tcosmonitor-prefwindow.ui:1310 +msgid "Connect using iTALC" +msgstr "Se connecter en utilisant iTALC" + +#: ../ui/tcosmonitor-prefwindow.ui:1325 +msgid "Restart session with new settings" +msgstr "Redmarrer la session avec les nouveaux rglages" + +#: ../ui/tcosmonitor-prefwindow.ui:1402 +msgid "Menus" +msgstr "Menus" + +#: ../ui/tcosmonitor-prefwindow.ui:1425 +msgid "Show / hide menu buttons" +msgstr "Afficher/cacher les boutons du menu" + +#: ../ui/tcosmonitor-prefwindow.ui:1508 +msgid "Audio conference" +msgstr "Confrence audio" + +#: ../ui/tcosmonitor-prefwindow.ui:1542 +msgid "Audio Chat control" +msgstr "Commandes pour le dialogue en ligne audio" + +#: ../ui/tcosmonitor-prefwindow.ui:1586 +msgid "Menu buttons" +msgstr "Boutons du menu" + +#: ../ui/tcosmonitor-chatwindow.ui:8 +msgid "Chat emission list" +msgstr "Liste des missions pour les dialogues en ligne" + +#: ../ui/tcosmonitor-chatwindow.ui:17 +msgid "Chat emission list" +msgstr "" +"Liste des missions pour les dialogues en ligne" + +#: ../ui/tcosmonitor-chatwindow.ui:80 +msgid "Connect" +msgstr "Connecter" + +#: ../ui/tcosmonitor-chatwindow.ui:128 +msgid "Disconnect" +msgstr "Dconnecter" + +#: ../ui/tcosmonitor-chatwindow.ui:176 +msgid "Exit" +msgstr "Sortie" + +#~ msgid "Send files disabled. rsync not configured." +#~ msgstr "L'envoi de fichiers est dsactiv. Rsync n'est pas configur." + +#~ msgid "" +#~ "TcosMonitor need special configuration for rsync daemon to send files.\n" +#~ "\n" +#~ "Please read configuration requeriments in:\n" +#~ "/usr/share/doc/tcosmonitor/README.rsync" +#~ msgstr "" +#~ "TcosMonitor a besoin d'une configuration spcifique du dmon rsync pour " +#~ "envoyer des fichiers.\n" +#~ "\n" +#~ "Veuillez lire le ncessaire configurer dans:\n"
+#~ "/usr/share/doc/tcosmonitor/README.rsync"
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: 331e9e732372d8b07e8c011ac77366db4b2e49a1
Date: Wed, 21 Mar 2012 12:29:19 GMT
Commit diff
--- a/tcosmonitor/extensions/videolan.py+++ b/tcosmonitor/extensions/videolan.py @@ -148,10 +148,10 @@ class VideoOne(TcosExtension):
return if access == "udp":- remote_cmd_standalone="vlc udp://@%s --udp-caching=1000 --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --fullscreen --aspect-ratio=4:3 --loop" %(ip_broadcast) - remote_cmd_thin="vlc udp://@%s --udp-caching=1000 --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --aspect-ratio=4:3 --loop" %(ip_broadcast) + remote_cmd_standalone="vlc udp://@%s --udp-caching=1000 --aout=alsa --brightness=2.000000 --volume=300 --fullscreen --aspect-ratio=4:3 --loop" %(ip_broadcast) + remote_cmd_thin="vlc udp://@%s --udp-caching=1000 --aout=alsa --brightness=2.000000 --volume=300 --aspect-ratio=4:3 --loop" %(ip_broadcast)
- p=subprocess.Popen(["vlc", "file://%s" %filename, "--sout=#duplicate{dst=display{delay=1000},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_broadcast), "--miface=%s" %eth, "--ttl=12", "--brightness=2.000000", "--no-x11-shm", "--no-xvideo-shm"], shell=False, bufsize=0, close_fds=True) + p=subprocess.Popen(["vlc", "file://%s" %filename, "--sout=#duplicate{dst=display{delay=1000},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_broadcast), "--miface=%s" %eth, "--ttl=12", "--brightness=2.000000"], shell=False, bufsize=0, close_fds=True)
self.main.write_into_statusbar( _("Waiting for start video transmission...") )@@ -177,13 +177,13 @@ class VideoOne(TcosExtension):
self.main.xmlrpc.newhost(ip) if access == "http": server=self.main.xmlrpc.GetStandalone("get_server")- remote_cmd_standalone="vlc http://%s%s --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --fullscreen --aspect-ratio=4:3 --http-reconnect --loop" %(server, ip_broadcast) + remote_cmd_standalone="vlc http://%s%s --aout=alsa --brightness=2.000000 --volume=300 --fullscreen --aspect-ratio=4:3 --http-reconnect --loop" %(server, ip_broadcast)
self.main.xmlrpc.DBus("exec", remote_cmd_standalone ) else: newusernames.append(user) if access == "http":- remote_cmd_thin="vlc http://localhost%s --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --aspect-ratio=4:3 --http-reconnect --loop" % (ip_broadcast) + remote_cmd_thin="vlc http://localhost%s --aout=alsa --brightness=2.000000 --volume=300 --aspect-ratio=4:3 --http-reconnect --loop" % (ip_broadcast)
result = self.main.dbus_action.do_exec( newusernames, remote_cmd_thin )@@ -274,11 +274,11 @@ class VideoOne(TcosExtension):
elif uip == max_uip: print_debug("Not found an available broadcast ip") return- remote_cmd="vlc udp://@%s --udp-caching=1000 --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --aspect-ratio=4:3 --loop" %(ip_unicast) + remote_cmd="vlc udp://@%s --udp-caching=1000 --aout=alsa --brightness=2.000000 --volume=300 --aspect-ratio=4:3 --loop" %(ip_unicast)
else: uip_cmd="" ip_unicast="%s:1234" %self.main.selected_ip- remote_cmd="vlc udp://@:1234 --udp-caching=1000 --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --fullscreen --aspect-ratio=4:3 --loop" + remote_cmd="vlc udp://@:1234 --udp-caching=1000 --aout=alsa --brightness=2.000000 --volume=300 --fullscreen --aspect-ratio=4:3 --loop"
else: max_uip=50255 uip=50000@@ -297,7 +297,7 @@ class VideoOne(TcosExtension):
print_debug("Not found an available broadcast ip") return if self.client_type == "tcos":- remote_cmd="vlc http://localhost%s --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --aspect-ratio=4:3 --http-reconnect --loop" %(ip_unicast) + remote_cmd="vlc http://localhost%s --aout=alsa --brightness=2.000000 --volume=300 --aspect-ratio=4:3 --http-reconnect --loop" %(ip_unicast)
if uip_cmd != "": result = self.main.localdata.Route("route-add", uip_cmd, "255.255.255.0", eth)@@ -344,13 +344,13 @@ class VideoOne(TcosExtension):
msg=_("Not allowed white spaces in \"%s\".\nPlease rename it." %os.path.basename(filename) ) shared.info_msg( msg ) return- p=subprocess.Popen(["vlc", "file://%s" %filename, "--sout=#duplicate{dst=display{delay=1000},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_unicast), "--miface=%s" %eth, "--ttl=12", "--brightness=2.000000", "--no-x11-shm", "--no-xvideo-shm"], shell=False, bufsize=0, close_fds=True) + p=subprocess.Popen(["vlc", "file://%s" %filename, "--sout=#duplicate{dst=display{delay=1000},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_unicast), "--miface=%s" %eth, "--ttl=12", "--brightness=2.000000"], shell=False, bufsize=0, close_fds=True)
elif response == 1:- p=subprocess.Popen(["vlc", "dvdsimple:///dev/cdrom", "--sout=#duplicate{dst=display{delay=700},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_unicast), "--miface=%s" %eth, "--ttl=12", "--loop", "--brightness=2.000000", "--no-x11-shm", "--no-xvideo-shm"], shell=False, bufsize=0, close_fds=True) + p=subprocess.Popen(["vlc", "dvdsimple:///dev/cdrom", "--sout=#duplicate{dst=display{delay=700},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_unicast), "--miface=%s" %eth, "--ttl=12", "--loop", "--brightness=2.000000"], shell=False, bufsize=0, close_fds=True)
elif response == 2:- p=subprocess.Popen(["vlc", "vcd:///dev/cdrom", "--sout=#duplicate{dst=display{delay=1000},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_unicast), "--miface=%s" %eth, "--ttl=12", "--brightness=2.000000", "--no-x11-shm", "--no-xvideo-shm"], shell=False, bufsize=0, close_fds=True) + p=subprocess.Popen(["vlc", "vcd:///dev/cdrom", "--sout=#duplicate{dst=display{delay=1000},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_unicast), "--miface=%s" %eth, "--ttl=12", "--brightness=2.000000"], shell=False, bufsize=0, close_fds=True)
elif response == 3:- p=subprocess.Popen(["vlc", "cdda:///dev/cdrom", "--sout=#duplicate{dst=display,dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=200,ab=112,channels=2}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_unicast), "--miface=%s" %eth, "--ttl=12", "--no-x11-shm", "--no-xvideo-shm"], shell=False, bufsize=0, close_fds=True) + p=subprocess.Popen(["vlc", "cdda:///dev/cdrom", "--sout=#duplicate{dst=display,dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=200,ab=112,channels=2}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_unicast), "--miface=%s" %eth, "--ttl=12"], shell=False, bufsize=0, close_fds=True)
# exec this app on client self.main.write_into_statusbar( _("Waiting for start video transmission...") )@@ -375,7 +375,7 @@ class VideoOne(TcosExtension):
# we have a standalone user... if access == "http": server=self.main.xmlrpc.GetStandalone("get_server")- remote_cmd="vlc http://%s%s --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --fullscreen --aspect-ratio=4:3 --http-reconnect --loop" %(server, ip_unicast) + remote_cmd="vlc http://%s%s --aout=alsa --brightness=2.000000 --volume=300 --fullscreen --aspect-ratio=4:3 --http-reconnect --loop" %(server, ip_unicast)
self.main.xmlrpc.DBus("exec", remote_cmd ) else: newusernames.append(user)@@ -577,18 +577,18 @@ class VideoOne(TcosExtension):
msg=_("Not allowed white spaces in \"%s\".\nPlease rename it." %os.path.basename(filename) ) shared.info_msg( msg ) return- p=subprocess.Popen(["vlc", "file://%s" %filename, "--sout=#duplicate{dst=display{delay=1000},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_broadcast), "--miface=%s" %eth, "--ttl=12", "--brightness=2.000000", "--no-x11-shm", "--no-xvideo-shm"], shell=False, bufsize=0, close_fds=True) + p=subprocess.Popen(["vlc", "file://%s" %filename, "--sout=#duplicate{dst=display{delay=1000},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_broadcast), "--miface=%s" %eth, "--ttl=12", "--brightness=2.000000"], shell=False, bufsize=0, close_fds=True)
elif response == 1:- p=subprocess.Popen(["vlc", "dvdsimple:///dev/cdrom", "--sout=#duplicate{dst=display{delay=700},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_broadcast), "--miface=%s" %eth, "--ttl=12", "--loop", "--brightness=2.000000", "--no-x11-shm", "--no-xvideo-shm"], shell=False, bufsize=0, close_fds=True) + p=subprocess.Popen(["vlc", "dvdsimple:///dev/cdrom", "--sout=#duplicate{dst=display{delay=700},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_broadcast), "--miface=%s" %eth, "--ttl=12", "--loop", "--brightness=2.000000"], shell=False, bufsize=0, close_fds=True)
elif response == 2:- p=subprocess.Popen(["vlc", "vcd:///dev/cdrom", "--sout=#duplicate{dst=display{delay=1000},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_broadcast), "--miface=%s" %eth, "--ttl=12", "--brightness=2.000000", "--no-x11-shm", "--no-xvideo-shm"], shell=False, bufsize=0, close_fds=True) + p=subprocess.Popen(["vlc", "vcd:///dev/cdrom", "--sout=#duplicate{dst=display{delay=1000},dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=800,ab=112,channels=2,soverlay}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_broadcast), "--miface=%s" %eth, "--ttl=12", "--brightness=2.000000"], shell=False, bufsize=0, close_fds=True)
elif response == 3:- p=subprocess.Popen(["vlc", "cdda:///dev/cdrom", "--sout=#duplicate{dst=display,dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=200,ab=112,channels=2}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_broadcast), "--miface=%s" %eth, "--ttl=12", "--no-x11-shm", "--no-xvideo-shm"], shell=False, bufsize=0, close_fds=True) + p=subprocess.Popen(["vlc", "cdda:///dev/cdrom", "--sout=#duplicate{dst=display,dst=\"transcode{vcodec=%s,venc=%s,acodec=%s,aenc=%s,vb=200,ab=112,channels=2}:standard{access=%s,mux=%s,dst=%s}\"}" %(vcodec, venc, acodec, aenc, access, mux, ip_broadcast), "--miface=%s" %eth, "--ttl=12"], shell=False, bufsize=0, close_fds=True)
# exec this app on client if access == "udp":- remote_cmd_standalone="vlc udp://@%s --udp-caching=1000 --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --fullscreen --aspect-ratio=4:3 --loop" %(ip_broadcast) - remote_cmd_thin="vlc udp://@%s --udp-caching=1000 --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --aspect-ratio=4:3 --loop" %(ip_broadcast) + remote_cmd_standalone="vlc udp://@%s --udp-caching=1000 --aout=alsa --brightness=2.000000 --volume=300 --fullscreen --aspect-ratio=4:3 --loop" %(ip_broadcast) + remote_cmd_thin="vlc udp://@%s --udp-caching=1000 --aout=alsa --brightness=2.000000 --volume=300 --aspect-ratio=4:3 --loop" %(ip_broadcast)
self.main.write_into_statusbar( _("Waiting for start video transmission...") )@@ -614,13 +614,13 @@ class VideoOne(TcosExtension):
self.main.xmlrpc.newhost(ip) if access == "http": server=self.main.xmlrpc.GetStandalone("get_server")- remote_cmd_standalone="vlc http://%s%s --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --fullscreen --aspect-ratio=4:3 --http-reconnect --loop" %(server, ip_broadcast) + remote_cmd_standalone="vlc http://%s%s --aout=alsa --brightness=2.000000 --volume=300 --fullscreen --aspect-ratio=4:3 --http-reconnect --loop" %(server, ip_broadcast)
self.main.xmlrpc.DBus("exec", remote_cmd_standalone ) else: newusernames.append(user) if access == "http":- remote_cmd_thin="vlc http://localhost%s --aout=alsa --brightness=2.000000 --no-x11-shm --no-xvideo-shm --volume=300 --aspect-ratio=4:3 --http-reconnect --loop" % (ip_broadcast) + remote_cmd_thin="vlc http://localhost%s --aout=alsa --brightness=2.000000 --volume=300 --aspect-ratio=4:3 --http-reconnect --loop" % (ip_broadcast)
result = self.main.dbus_action.do_exec( newusernames, remote_cmd_thin )
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: d17d20038f82825432cb363d0c4386ecdfcaba36
Date: Sun, 05 Feb 2012 20:58:14 GMT
Commit diff
--- a/debian/changelog+++ b/debian/changelog @@ -1,9 +1,17 @@ +tcosmonitor (0.2.47) unstable; urgency=low + + * tcosmonitor/TcosCommon.py: + - Fix print_debug() typo in lookup() + - Do a revlookup() in all nameservers + + -- Mario Izquierdo (mariodebian) Sun, 05 Feb 2012 21:57:29 +0100 +
tcosmonitor (0.2.46) unstable; urgency=low * tcosmonitor/TcosCommon.py: - Ask all nameservers and init server list in lookup()- -- Mario Izquierdo (mariodebian) Sun, 05 Feb 2012 21:16:51 +0100 + -- Mario Izquierdo (mariodebian) Sun, 05 Feb 2012 21:56:40 +0100
tcosmonitor (0.2.45) unstable; urgency=low
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: e23709d75a274c50c6c324f6779fcaeba47895c6
Date: Sun, 05 Feb 2012 20:56:14 GMT
Commit diff
--- a/tcosmonitor/TcosCommon.py+++ b/tcosmonitor/TcosCommon.py @@ -178,14 +178,15 @@ class TcosCommon:
b = ".".join(a)+'.in-addr.arpa' # this will only return one of any records returned. response=_("unknow")- try: - c=DNS.Base.DnsRequest(b, qtype = 'ptr', timeout=0.2).req() - response=c.answers[0]['data'] - except DNS.Base.DNSError, err: - print_debug("revlookup() Exception Timeout, error=%s"%err) - except IndexError, err: - #print_debug("revlookup() Exception IndexError, error=%s"%err) - return _("unknow") + for nameserver in DNS.Base.defaults['server']: + try: + print_debug("revlookup() reverse name=%s"%b) + c=DNS.Base.DnsRequest(b, qtype = 'ptr', timeout=0.2, server=nameserver).req() + response=c.answers[0]['data'] + except DNS.Base.DNSError, err: + print_debug("revlookup() nameserver=%s Exception Timeout, error=%s"%(nameserver,err)) + except IndexError, err: + print_debug("revlookup() nameserver=%s Exception IndexError, error=%s"%(nameserver,err))
return response def lookup(self, name):@@ -199,9 +200,9 @@ class TcosCommon:
c=DNS.Base.DnsRequest(name, qtype = 'a', timeout=0.2, server=nameserver).req() response=c.answers[0]['data'] except DNS.Base.DNSError, err:- print_debug("revlookup() nameserver=%s Exception Timeout, error=%s"%(nameserver,err)) + print_debug("lookup() nameserver=%s Exception Timeout, error=%s"%(nameserver,err))
except IndexError, err:- print_debug("revlookup() nameserver=%s Exception IndexError, error=%s"%(nameserver, err)) + print_debug("lookup() nameserver=%s Exception IndexError, error=%s"%(nameserver, err))
return responsedef DNSgethostbyaddr(self, ip):
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: 84453d6fc35dc9e22dd630a6081ab2329773bc4b
Date: Fri, 20 Jan 2012 14:20:11 GMT
Commit diff
--- a/compare.sh+++ b/compare.sh @@ -1,17 +1,17 @@
#!/bin/sh-DIR=/usr/src/linux-source-3.1/drivers/media/ +DIR=/usr/src/linux-source-3.2/drivers/media/
cd dvb for f in *; do- NEW=$(find ${DIR} -name "$f") + NEW=$(find ${DIR}../../ -name "$f")
if [ -f "${NEW}" ]; then if ! diff "$NEW" "$f" >/dev/null 2>&1 ; then #diff -ur "$NEW" "$f"- echo meld "$NEW" "dvb/$f" + echo meld "$NEW" "dvb/$f" ";\\"
else echo "SAME FILE $NEW dvb/$f" fi
--- a/debian/changelog+++ b/debian/changelog @@ -1,3 +1,10 @@ +af90xx-dkms (0.6) unstable; urgency=low + + * Update for 3.2.0 kernel + * Add IR support from https://github.com/OpenELEC/OpenELEC.tv + + -- Mario Izquierdo (mariodebian) Fri, 20 Jan 2012 13:46:34 +0100 +
af90xx-dkms (0.5) unstable; urgency=low * Update from 3.1 sources
--- a/debian/rules+++ b/debian/rules @@ -4,7 +4,7 @@
#export DH_VERBOSE=1 #MODS=af9013 af9033 dvb-core dvb-usb-af9005 dvb-usb-af9015 dvb-usb-af9035 dvb-usb mxl5007t tua9001-MODS=af9033 dvb-core dvb-usb-af9035 dvb-usb mxl5007t tua9001 +MODS=af9033 dvb-core dvb-usb-af9035 dvb-usb mxl5007t tua9001 tuner_tda18218
export I=0 # Name of the dkms package
--- a/dvb/Makefile+++ b/dvb/Makefile @@ -14,6 +14,7 @@ obj-$(CONFIG_DVB_CORE) += dvb-core.o
obj-m += af9033.o obj-m += tua9001.o obj-m += mxl5007t.o+obj-m += tuner_tda18218.o
obj-m += dvb-usb-af9035.o
--- a/dvb/af9033.c+++ b/dvb/af9033.c @@ -929,6 +929,10 @@ static int af9033_init(struct dvb_frontend *fe)
len = ARRAY_SIZE(tuner_init_mxl5007t); init = tuner_init_mxl5007t; break;+ case AF9033_TUNER_TDA18218: + len = ARRAY_SIZE(tuner_init_tda18218); + init = tuner_init_tda18218; + break;
default: len = 0; init = NULL;
--- a/dvb/af9033.h+++ b/dvb/af9033.h @@ -37,6 +37,7 @@ enum af9033_tuner {
AF9033_TUNER_TUA9001 = 0x27, /* Infineon TUA 9001 */ AF9033_TUNER_FC0011 = 0x28, /* Fitipower FC0011 */ AF9033_TUNER_MXL5007t = 0xa0, /* Maxlinear MXL5007t */+ AF9033_TUNER_TDA18218 = 0xa1, /* NXP TDA 18218HN */
}; /* clock setting table:
--- a/dvb/af9033_priv.h+++ b/dvb/af9033_priv.h @@ -305,6 +305,47 @@ static struct regdesc tuner_init_tua9001[] = {
{0xF1E6, 0x00}, };+/* NXP TDA18218 tuner init + AF9033_TUNER_TDA18218 = 161 */ +static struct regdesc tuner_init_tda18218[] = { + {0x0046, 0x27}, + {0x0071, 0x05}, + {0x0072, 0x02}, + {0x0074, 0x01}, + {0x0075, 0x03}, + {0x0076, 0x02}, + {0x0077, 0x00}, + {0x0078, 0x01}, + {0x007a, 0x7e}, + {0x007b, 0x3e}, + {0x0098, 0x0a}, + {0x00b3, 0x00}, + {0xf007, 0x00}, + {0xf01f, 0x82}, + {0xf020, 0x00}, + {0xf047, 0x00}, + {0xf077, 0x01}, + {0xf1e6, 0x00}, + {0x0057, 0x00}, + {0x0058, 0x01}, + {0x005f, 0x00}, + {0x0060, 0x00}, + {0x006d, 0x00}, + {0x0079, 0x00}, + {0x0093, 0x00}, + {0x0094, 0x01}, + {0x0095, 0x02}, + {0x0096, 0x01}, + {0x009b, 0x05}, + {0x009c, 0x80}, + {0x00c1, 0x01}, + {0x00c2, 0x00}, + {0xf029, 0x82}, + {0xf02a, 0x00}, + {0xf054, 0x00}, + {0xf055, 0x00}, +}; +
static struct regdesc tuner_init_mxl5007t[] = { {0x0046, 0x1b}, {0x0057, 0x01},
--- a/dvb/af9035.c+++ b/dvb/af9035.c @@ -22,14 +22,19 @@
* Thanks to TerraTec for a support received. */+#include "dvb-usb-ids.h"
#include "af9035.h" #include "af9033.h" #include "tua9001.h" #include "mxl5007t.h"+#include "tuner_tda18218.h"
static int dvb_usb_af9035_debug; module_param_named(debug, dvb_usb_af9035_debug, int, 0644); MODULE_PARM_DESC(debug, "set debugging level" DVB_USB_DEBUG_STATUS);+static int dvb_usb_af9035_remote; +module_param_named(remote, dvb_usb_af9035_remote, int, 0644); +MODULE_PARM_DESC(remote, "select remote");
DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); static DEFINE_MUTEX(af9035_usb_mutex);@@ -123,6 +128,12 @@ static int af9035_rw_udev(struct usb_device *udev, struct af9035_req *req)
deb_xfer("<<< "); debug_dump(buf, act_len, deb_xfer);+ /* no ack for those packets */ + if (req->cmd == CMD_IR_GET || req->cmd == CMD_IR_SET ) { + if (req->rlen) + memcpy(req->rbuf, &buf;[3], req->rlen); + goto exit_unlock; + }
/* check status */ if (buf[2]) { err("command:%02x failed:%d", req->cmd, buf[2]);@@ -585,6 +596,104 @@ static int af9035_read_eeprom_reg(struct usb_device *udev, u16 reg, u8 *val)
return af9035_rw_udev(udev, &req;); }+struct af9035_rc_setup { + unsigned int id; + char *rc_codes; +}; + +static char *af9035_rc_setup_match(unsigned int id, + const struct af9035_rc_setup *table) +{ + for (; table->rc_codes; table++) + if (table->id == id) + return table->rc_codes; + return NULL; +} + +static const struct af9035_rc_setup af9035_rc_setup_modparam[] = { + { AF9035_REMOTE_A_LINK_DTU_M, RC_MAP_ALINK_DTU_M }, + { AF9035_REMOTE_MSI_DIGIVOX_MINI_II_V3, RC_MAP_MSI_DIGIVOX_II }, + { AF9035_REMOTE_MYGICTV_U718, RC_MAP_TOTAL_MEDIA_IN_HAND }, + { AF9035_REMOTE_DIGITTRADE_DVB_T, RC_MAP_DIGITTRADE }, + { AF9035_REMOTE_AVERMEDIA_KS, RC_MAP_AVERMEDIA_RM_KS }, + { } +}; + +static const struct af9035_rc_setup af9035_rc_setup_hashes[] = { + { 0xb8feb708, RC_MAP_MSI_DIGIVOX_II }, + { 0xa3703d00, RC_MAP_ALINK_DTU_M }, + { 0x9b7dc64e, RC_MAP_TOTAL_MEDIA_IN_HAND }, /* MYGICTV U718 */ + { } +}; + +static const struct af9035_rc_setup af9035_rc_setup_usbids[] = { + { (USB_VID_TERRATEC << 16) + USB_PID_TERRATEC_CINERGY_T_STICK_DUAL_RC, + RC_MAP_TERRATEC_SLIM }, + { (USB_VID_VISIONPLUS << 16) + USB_PID_AZUREWAVE_AD_TU700, + RC_MAP_AZUREWAVE_AD_TU700 }, + { (USB_VID_VISIONPLUS << 16) + USB_PID_TINYTWIN, + RC_MAP_AZUREWAVE_AD_TU700 }, + { (USB_VID_MSI_2 << 16) + USB_PID_MSI_DIGI_VOX_MINI_III, + RC_MAP_MSI_DIGIVOX_III }, + { (USB_VID_LEADTEK << 16) + USB_PID_WINFAST_DTV_DONGLE_GOLD, + RC_MAP_LEADTEK_Y04G0051 }, + { (USB_VID_AVERMEDIA << 16) + USB_PID_AVERMEDIA_VOLAR_X, + RC_MAP_AVERMEDIA_M135A }, + { (USB_VID_AFATECH << 16) + USB_PID_TREKSTOR_DVBT, + RC_MAP_TREKSTOR }, + { (USB_VID_KWORLD_2 << 16) + USB_PID_TINYTWIN_2, + RC_MAP_DIGITALNOW_TINYTWIN }, + { (USB_VID_GTEK << 16) + USB_PID_TINYTWIN_3, + RC_MAP_DIGITALNOW_TINYTWIN }, + { } +}; + +static void af9035_set_remote_config(struct usb_device *udev, + struct dvb_usb_device_properties *props) +{ + u16 vid = le16_to_cpu(udev->descriptor.idVendor); + u16 pid = le16_to_cpu(udev->descriptor.idProduct); + + /* try to load remote based module param */ + props->rc.core.rc_codes = af9035_rc_setup_match( + dvb_usb_af9035_remote, af9035_rc_setup_modparam); + + /* try to load remote based eeprom hash */ + if (!props->rc.core.rc_codes) + props->rc.core.rc_codes = af9035_rc_setup_match( + af9035_config.eeprom_sum, af9035_rc_setup_hashes); + + /* try to load remote based USB ID */ + if (!props->rc.core.rc_codes) + props->rc.core.rc_codes = af9035_rc_setup_match( + (vid << 16) + pid, af9035_rc_setup_usbids); + + /* try to load remote based USB iManufacturer string */ + if (!props->rc.core.rc_codes && vid == USB_VID_AFATECH) { + /* Check USB manufacturer and product strings and try + to determine correct remote in case of chip vendor + reference IDs are used. + DO NOT ADD ANYTHING NEW HERE. Use hashes instead. */ + char manufacturer[10]; + memset(manufacturer, 0, sizeof(manufacturer)); + usb_string(udev, udev->descriptor.iManufacturer, + manufacturer, sizeof(manufacturer)); + if (!strcmp("MSI", manufacturer)) { + /* iManufacturer 1 MSI + iProduct 2 MSI K-VOX */ + props->rc.core.rc_codes = af9035_rc_setup_match( + AF9035_REMOTE_MSI_DIGIVOX_MINI_II_V3, + af9035_rc_setup_modparam); + } + } + + /* finally load "empty" just for leaving IR receiver enabled */ + if (!props->rc.core.rc_codes) + props->rc.core.rc_codes = RC_MAP_EMPTY; + + return; +} +
static int af9035_read_config(struct usb_device *udev) { int ret;@@ -595,6 +704,13 @@ static int af9035_read_config(struct usb_device *udev)
if (ret) goto error; deb_info("%s: IR mode:%d\n", __func__, val);+ for (i = 0; i < af9035_properties_count; i++) { + if (val == AF9035_IR_MODE_DISABLED) + af9035_properties[i].rc.core.rc_codes = NULL; + else + af9035_set_remote_config(udev, &af9035;_properties[i]); + } +
/* TS mode - one or two receivers */ ret = af9035_read_eeprom_reg(udev, EEPROM_TS_MODE, &val;);@@ -608,13 +724,13 @@ static int af9035_read_config(struct usb_device *udev)
for (i = 0; i < af9035_properties_count; i++) { /* USB1.1 set smaller buffersize and disable 2nd adapter */ if (udev->speed == USB_SPEED_FULL) {- af9035_properties[i].adapter[0].stream.u.bulk.buffersize + af9035_properties[i].adapter[0].fe[0].stream.u.bulk.buffersize
= TS_USB11_MAX_PACKET_SIZE; /* disable 2nd adapter because we don't have PID-filters */ af9035_config.dual_mode = 0; } else {- af9035_properties[i].adapter[0].stream.u.bulk.buffersize + af9035_properties[i].adapter[0].fe[0].stream.u.bulk.buffersize
= TS_USB20_FRAME_SIZE; } }@@ -697,6 +813,9 @@ static int af9035_read_config(struct usb_device *udev)
case AF9033_TUNER_MXL5007t: af9035_af9033_config[i].rf_spec_inv = 1; break;+ case AF9033_TUNER_TDA18218: + af9035_af9033_config[i].rf_spec_inv = 1; + break;
default: warn("tuner ID:%d not supported, please report!", val); return -ENODEV;@@ -711,8 +830,10 @@ error:
err("eeprom read failed:%d", ret); if (le16_to_cpu(udev->descriptor.idVendor) == USB_VID_AVERMEDIA &&- le16_to_cpu(udev->descriptor.idProduct) == USB_PID_AVERMEDIA_A825) { - deb_info("%s: AverMedia A825: overriding config\n", __func__); + (le16_to_cpu(udev->descriptor.idProduct) == USB_PID_AVERMEDIA_A825 || + le16_to_cpu(udev->descriptor.idProduct) == USB_PID_AVERMEDIA_A835 || + le16_to_cpu(udev->descriptor.idProduct) == USB_PID_AVERMEDIA_B835)) { + deb_info("%s: AverMedia A825/A835/B835: overriding config\n", __func__);
/* set correct IF */ for (i = 0; i < af9035_properties[0].num_adapters; i++) { af9035_af9033_config[i].if_freq = 4570000;@@ -722,6 +843,36 @@ error:
return ret; }+static int af9035_rc_query(struct dvb_usb_device *d) +{ + +// { 0x05, 0x12, KEY_POWER }, /* POWER */ + struct af9035_state *priv = d->priv; + int ret; + u8 buf[5]; + + struct af9035_req req = {CMD_IR_GET, LINK, 0, 0, + sizeof(buf), buf}; + ret = af9035_rw_udev(d->udev, &req;); + if (ret) + goto error; + + if (buf[00] == 0x05 && buf[02] != 0xe7 ) { + deb_info("%s: %02x %02x %02x %02x %02x \n", __func__, + buf[00], buf[01], buf[02], buf[03], buf[04], buf[05]); + priv->rc_keycode = buf[00] << 8 | buf[02]; + deb_info("%s: %d \n", __func__, + priv->rc_keycode); + rc_keydown(d->rc_dev, priv->rc_keycode, 0); + } + +error: + if (ret) + err("%s: failed:%d", __func__, ret); + + return ret; +} +
static int af9035_aux_init(struct usb_device *d) { int ret;@@ -783,10 +934,10 @@ static int af9035_identify_state(struct usb_device *udev,
static int af9035_af9033_frontend_attach(struct dvb_usb_adapter *adap) { /* attach demodulator */- adap->fe = dvb_attach(af9033_attach, &af9035;_af9033_config[adap->id], + adap->fe_adap[0].fe = dvb_attach(af9033_attach, &af9035;_af9033_config[adap->id],
&adap-;>dev->i2c_adap);- return adap->fe == NULL ? -ENODEV : 0; + return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
} static struct tua9001_config af9035_tua9001_config[] = {@@ -815,6 +966,11 @@ static struct mxl5007t_config af9035_mxl5007t_config[] = {
} };+static struct tda18218_config af9035_tda18218_config = { + .i2c_address = 0xc0, + .i2c_wr_max = 17, +}; +
static int af9035_tuner_attach(struct dvb_usb_adapter *adap) { int ret;@@ -852,7 +1008,7 @@ static int af9035_tuner_attach(struct dvb_usb_adapter *adap)
reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 1); }- ret = dvb_attach(tua9001_attach, adap->fe, &adap-;>dev->i2c_adap, + ret = dvb_attach(tua9001_attach, adap->fe_adap[0].fe, &adap-;>dev->i2c_adap,
&af9035;_tua9001_config[adap->id]) == NULL ? -ENODEV : 0; break;@@ -905,11 +1061,45 @@ static int af9035_tuner_attach(struct dvb_usb_adapter *adap)
1); }- ret = dvb_attach(mxl5007t_attach, adap->fe, &adap-;>dev->i2c_adap, + ret = dvb_attach(mxl5007t_attach, adap->fe_adap[0].fe, &adap-;>dev->i2c_adap,
af9035_af9033_config[adap->id].tuner_address, &af9035;_mxl5007t_config[adap->id]) == NULL ? -ENODEV : 0; break;+ case AF9033_TUNER_TDA18218: + af9035_af9033_config[adap->id].tuner_address = af9035_tua9001_config[adap->id].i2c_address; + af9035_af9033_config[adap->id].tuner_address += adap->id; + if (adap->id == 0) { + /* gpiot3 TUA9001 RESETN + gpiot2 TUA9001 RXEN */ + ret = af9035_write_reg_bits(adap->dev, LINK, + p_reg_top_gpiot2_en, reg_top_gpiot2_en_pos, + reg_top_gpiot2_en_len, 1); + ret = af9035_write_reg_bits(adap->dev, LINK, + p_reg_top_gpiot2_on, reg_top_gpiot2_on_pos, + reg_top_gpiot2_on_len, 1); + ret = af9035_write_reg_bits(adap->dev, LINK, + p_reg_top_gpiot3_en, reg_top_gpiot3_en_pos, + reg_top_gpiot3_en_len, 1); + ret = af9035_write_reg_bits(adap->dev, LINK, + p_reg_top_gpiot3_on, reg_top_gpiot3_on_pos, + reg_top_gpiot3_on_len, 1); + + /* reset tuner */ + ret = af9035_write_reg_bits(adap->dev, LINK, p_reg_top_gpiot3_o, + reg_top_gpiot3_o_pos, reg_top_gpiot3_o_len, 0); + msleep(1); + ret = af9035_write_reg_bits(adap->dev, LINK, p_reg_top_gpiot3_o, + reg_top_gpiot3_o_pos, reg_top_gpiot3_o_len, 1); + + /* activate tuner - TODO: do that like I2C gate control */ + ret = af9035_write_reg_bits(adap->dev, LINK, p_reg_top_gpiot2_o, + reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 1); + } + + ret = dvb_attach(tuner_tda18218_attach, adap->fe_adap[0].fe, &adap-;>dev->i2c_adap, + &af9035;_tda18218_config) == NULL ? -ENODEV : 0; + break;
default: ret = -ENODEV; err("unknown tuner ID:%d",@@ -926,12 +1116,17 @@ static struct usb_device_id af9035_usb_table[] = {
{USB_DEVICE(USB_VID_AFATECH, USB_PID_AFATECH_AF9035_1003)}, {USB_DEVICE(USB_VID_AFATECH, USB_PID_AFATECH_AF9035_9035)}, /* 5 */{USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_STICK)},-/* 6 */{USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A825)}, + {USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_STICK_2)}, +/* 7 */{USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A825)}, +/* 8 */{USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A835)}, + {USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_B835)},
{0}, }; MODULE_DEVICE_TABLE(usb, af9035_usb_table);+#define AF9035_RC_INTERVAL 200 +
static struct dvb_usb_device_properties af9035_properties[] = { { .caps = DVB_USB_IS_AN_I2C_ADAPTER,@@ -941,10 +1136,25 @@ static struct dvb_usb_device_properties af9035_properties[] = {
.firmware = "dvb-usb-af9035-01.fw", .no_reconnect = 1,- .size_of_priv = 0, + .size_of_priv = sizeof(struct af9035_state),
+ .num_adapters = 2,
.adapter = { {+ .num_frontends = 1, + .fe = {{ + + .frontend_attach = + af9035_af9033_frontend_attach, + .tuner_attach = af9035_tuner_attach, + .stream = { + .type = USB_BULK, + .count = 6, + .endpoint = 0x84, + }, + }}, + }, + /*{
.frontend_attach = af9035_af9033_frontend_attach, .tuner_attach = af9035_tuner_attach,@@ -953,11 +1163,13 @@ static struct dvb_usb_device_properties af9035_properties[] = {
.count = 4, .endpoint = 0x84, },- }, + },*/
{+ .num_frontends = 1, + .fe = {{
.frontend_attach = af9035_af9033_frontend_attach,- .tuner_attach = af9035_tuner_attach, + .tuner_attach = af9035_tuner_attach,
.stream = { .type = USB_BULK, .count = 4,@@ -969,14 +1181,39 @@ static struct dvb_usb_device_properties af9035_properties[] = {
} } },+ }},
}+ /*{ + .frontend_attach = + af9035_af9033_frontend_attach, + .tuner_attach = af9035_tuner_attach, + .stream = { + .type = USB_BULK, + .count = 4, + .endpoint = 0x85, + .u = { + .bulk = { + .buffersize = + TS_USB20_FRAME_SIZE, + } + } + }, + }*/
}, .identify_state = af9035_identify_state,+ .rc.core = { + .protocol = RC_TYPE_NEC, + .module_name = "af9035", + .rc_query = af9035_rc_query, + .rc_interval = AF9035_RC_INTERVAL, + .allowed_protos = RC_TYPE_NEC, + }, +
.i2c_algo = &af9035;_i2c_algo,- .num_device_descs = 3, + .num_device_descs = 4,
.devices = { { .name = "Afatech AF9035 DVB-T USB2.0 stick",@@ -989,18 +1226,24 @@ static struct dvb_usb_device_properties af9035_properties[] = {
}, { .name = "TerraTec Cinergy T Stick",- .cold_ids = {&af9035;_usb_table[5], NULL}, + .cold_ids = {&af9035;_usb_table[5], + &af9035;_usb_table[6], NULL},
.warm_ids = {NULL}, }, { .name = "Avermedia TwinStar",- .cold_ids = {&af9035;_usb_table[6], NULL}, - .warm_ids = {NULL}, + .cold_ids = {&af9035;_usb_table[7], NULL}, + .warm_ids = {NULL}, + }, + { + .name = "Avermedia AverTV Volar HD & HD PRO (A835)", + .cold_ids = {&af9035;_usb_table[8], + &af9035;_usb_table[9], NULL}, + .warm_ids = {NULL},
}, } }, };-
static int af9035_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) {
--- a/dvb/af9035.h+++ b/dvb/af9035.h @@ -168,6 +168,9 @@ struct af9035_req {
struct af9035_config { u8 dual_mode:1; u16 mt2060_if1[2];+ u16 firmware_size; + u16 firmware_checksum; + u32 eeprom_sum;
}; struct af9035_segment {@@ -184,7 +187,27 @@ struct af9035_firmware_header {
struct af9035_segment segment[SEGMENT_MAX_COUNT]; };+enum af9035_remote { + AF9035_REMOTE_NONE = 0, +/* 1 */ AF9035_REMOTE_A_LINK_DTU_M, + AF9035_REMOTE_MSI_DIGIVOX_MINI_II_V3, + AF9035_REMOTE_MYGICTV_U718, + AF9035_REMOTE_DIGITTRADE_DVB_T, +/* 5 */ AF9035_REMOTE_AVERMEDIA_KS, +};
+struct af9035_state { + struct i2c_adapter i2c_adap; /* I2C adapter for 2nd FE */ + u8 rc_repeat; + u32 rc_keycode; +};
+enum af9035_ir_mode { + AF9035_IR_MODE_DISABLED = 0, + AF9035_IR_MODE_HID, + AF9035_IR_MODE_RLC, + AF9035_IR_MODE_RC6, + AF9035_IR_MODE_POLLING, /* just guess */ +};
#endif
--- a/dvb/dvb-usb-dvb.c+++ b/dvb/dvb-usb-dvb.c @@ -17,15 +17,20 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
if (adap == NULL) return -ENODEV;+ if ((adap->active_fe < 0) || + (adap->active_fe >= adap->num_frontends_initialized)) { + return -EINVAL; + } +
newfeedcount = adap->feedcount + (onoff ? 1 : -1); /* stop feed before setting a new pid if there will be no pid anymore */ if (newfeedcount == 0) { deb_ts("stop feeding\n");- usb_urb_kill(&adap-;>stream); + usb_urb_kill(&adap-;>fe_adap[adap->active_fe].stream);
- if (adap->props.streaming_ctrl != NULL) { - ret = adap->props.streaming_ctrl(adap, 0); + if (adap->props.fe[adap->active_fe].streaming_ctrl != NULL) { + ret = adap->props.fe[adap->active_fe].streaming_ctrl(adap, 0);
if (ret < 0) { err("error while stopping stream."); return ret;@@ -36,36 +41,37 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
adap->feedcount = newfeedcount; /* activate the pid on the device specific pid_filter */- deb_ts("setting pid (%s): %5d %04x at index %d '%s'\n",adap->pid_filtering ? - "yes" : "no", dvbdmxfeed->pid,dvbdmxfeed->pid,dvbdmxfeed->index,onoff ? - "on" : "off"); - if (adap->props.caps & DVB_USB_ADAP_HAS_PID_FILTER && - adap->pid_filtering && - adap->props.pid_filter != NULL) - adap->props.pid_filter(adap, dvbdmxfeed->index, dvbdmxfeed->pid,onoff); + deb_ts("setting pid (%s): %5d %04x at index %d '%s'\n", + adap->fe_adap[adap->active_fe].pid_filtering ? + "yes" : "no", dvbdmxfeed->pid, dvbdmxfeed->pid, + dvbdmxfeed->index, onoff ? "on" : "off"); + if (adap->props.fe[adap->active_fe].caps & DVB_USB_ADAP_HAS_PID_FILTER && + adap->fe_adap[adap->active_fe].pid_filtering && + adap->props.fe[adap->active_fe].pid_filter != NULL) + adap->props.fe[adap->active_fe].pid_filter(adap, dvbdmxfeed->index, dvbdmxfeed->pid, onoff);
/* start the feed if this was the first feed and there is still a feed * for reception. */ if (adap->feedcount == onoff && adap->feedcount > 0) { deb_ts("submitting all URBs\n");- usb_urb_submit(&adap-;>stream); + usb_urb_submit(&adap-;>fe_adap[adap->active_fe].stream);
deb_ts("controlling pid parser\n");- if (adap->props.caps & DVB_USB_ADAP_HAS_PID_FILTER && - adap->props.caps & + if (adap->props.fe[adap->active_fe].caps & DVB_USB_ADAP_HAS_PID_FILTER && + adap->props.fe[adap->active_fe].caps &
DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF &&- adap->props.pid_filter_ctrl != NULL) { - ret = adap->props.pid_filter_ctrl(adap, - adap->pid_filtering); + adap->props.fe[adap->active_fe].pid_filter_ctrl != NULL) { + ret = adap->props.fe[adap->active_fe].pid_filter_ctrl(adap, + adap->fe_adap[adap->active_fe].pid_filtering);
if (ret < 0) { err("could not handle pid_parser"); return ret; } } deb_ts("start feeding\n");- if (adap->props.streaming_ctrl != NULL) { - ret = adap->props.streaming_ctrl(adap, 1); + if (adap->props.fe[adap->active_fe].streaming_ctrl != NULL) { + ret = adap->props.fe[adap->active_fe].streaming_ctrl(adap, 1);
if (ret < 0) { err("error while enabling fifo."); return ret;@@ -90,6 +96,7 @@ static int dvb_usb_stop_feed(struct dvb_demux_feed *dvbdmxfeed)
int dvb_usb_adapter_dvb_init(struct dvb_usb_adapter *adap, short *adapter_nums) {+ int i;
int ret = dvb_register_adapter(&adap-;>dvb_adap, adap->dev->desc->name, adap->dev->owner, &adap-;>dev->udev->dev, adapter_nums);@@ -112,7 +119,12 @@ int dvb_usb_adapter_dvb_init(struct dvb_usb_adapter *adap, short *adapter_nums)
adap->demux.dmx.capabilities = DMX_TS_FILTERING | DMX_SECTION_FILTERING; adap->demux.priv = adap;- adap->demux.feednum = adap->demux.filternum = adap->max_feed_count; + adap->demux.filternum = 0; + for (i = 0; i < adap->props.num_frontends; i++) { + if (adap->demux.filternum < adap->fe_adap[i].max_feed_count) + adap->demux.filternum = adap->fe_adap[i].max_feed_count; + } + adap->demux.feednum = adap->demux.filternum;
adap->demux.start_feed = dvb_usb_start_feed; adap->demux.stop_feed = dvb_usb_stop_feed; adap->demux.write_to_decoder = NULL;@@ -156,14 +168,33 @@ int dvb_usb_adapter_dvb_exit(struct dvb_usb_adapter *adap)
return 0; }+static int dvb_usb_set_active_fe(struct dvb_frontend *fe, int onoff) +{ + struct dvb_usb_adapter *adap = fe->dvb->priv; + + int ret = (adap->props.frontend_ctrl) ? + adap->props.frontend_ctrl(fe, onoff) : 0; + + if (ret < 0) { + err("frontend_ctrl request failed"); + return ret; + } + if (onoff) + adap->active_fe = fe->id; + + return 0; +} +
static int dvb_usb_fe_wakeup(struct dvb_frontend *fe) { struct dvb_usb_adapter *adap = fe->dvb->priv; dvb_usb_device_power_ctrl(adap->dev, 1);- if (adap->fe_init) - adap->fe_init(fe); + dvb_usb_set_active_fe(fe, 1); + + if (adap->fe_adap[fe->id].fe_init) + adap->fe_adap[fe->id].fe_init(fe);
return 0; }@@ -172,45 +203,81 @@ static int dvb_usb_fe_sleep(struct dvb_frontend *fe)
{ struct dvb_usb_adapter *adap = fe->dvb->priv;- if (adap->fe_sleep) - adap->fe_sleep(fe); + if (adap->fe_adap[fe->id].fe_sleep) + adap->fe_adap[fe->id].fe_sleep(fe); + + dvb_usb_set_active_fe(fe, 0);
return dvb_usb_device_power_ctrl(adap->dev, 0); } int dvb_usb_adapter_frontend_init(struct dvb_usb_adapter *adap) {- if (adap->props.frontend_attach == NULL) { - err("strange: '%s' #%d doesn't want to attach a frontend.",adap->dev->desc->name, adap->id); - return 0; - } + int ret, i;
- /* re-assign sleep and wakeup functions */ - if (adap->props.frontend_attach(adap) == 0 && adap->fe != NULL) { - adap->fe_init = adap->fe->ops.init; adap->fe->ops.init = dvb_usb_fe_wakeup; - adap->fe_sleep = adap->fe->ops.sleep; adap->fe->ops.sleep = dvb_usb_fe_sleep; + /* register all given adapter frontends */ + for (i = 0; i < adap->props.num_frontends; i++) {
- if (dvb_register_frontend(&adap-;>dvb_adap, adap->fe)) { - err("Frontend registration failed."); - dvb_frontend_detach(adap->fe); - adap->fe = NULL; - return -ENODEV; + if (adap->props.fe[i].frontend_attach == NULL) { + err("strange: '%s' #%d,%d " + "doesn't want to attach a frontend.", + adap->dev->desc->name, adap->id, i); + + return 0; + } + + ret = adap->props.fe[i].frontend_attach(adap); + if (ret || adap->fe_adap[i].fe == NULL) { + /* only print error when there is no FE at all */ + if (i == 0) + err("no frontend was attached by '%s'", + adap->dev->desc->name); + + return 0; + } + + adap->fe_adap[i].fe->id = i; + + /* re-assign sleep and wakeup functions */ + adap->fe_adap[i].fe_init = adap->fe_adap[i].fe->ops.init; + adap->fe_adap[i].fe->ops.init = dvb_usb_fe_wakeup; + adap->fe_adap[i].fe_sleep = adap->fe_adap[i].fe->ops.sleep; + adap->fe_adap[i].fe->ops.sleep = dvb_usb_fe_sleep; + + if (dvb_register_frontend(&adap-;>dvb_adap, adap->fe_adap[i].fe)) { + err("Frontend %d registration failed.", i); + dvb_frontend_detach(adap->fe_adap[i].fe); + adap->fe_adap[i].fe = NULL; + /* In error case, do not try register more FEs, + * still leaving already registered FEs alive. */ + if (i == 0) + return -ENODEV; + else + return 0;
} /* only attach the tuner if the demod is there */- if (adap->props.tuner_attach != NULL) - adap->props.tuner_attach(adap); - } else - err("no frontend was attached by '%s'",adap->dev->desc->name); + if (adap->props.fe[i].tuner_attach != NULL) + adap->props.fe[i].tuner_attach(adap); + + adap->num_frontends_initialized++; + }
return 0; } int dvb_usb_adapter_frontend_exit(struct dvb_usb_adapter *adap) {- if (adap->fe != NULL) { - dvb_unregister_frontend(adap->fe); - dvb_frontend_detach(adap->fe); + int i = adap->num_frontends_initialized - 1; + + /* unregister all given adapter frontends */ + for (; i >= 0; i--) { + if (adap->fe_adap[i].fe != NULL) { + dvb_unregister_frontend(adap->fe_adap[i].fe); + dvb_frontend_detach(adap->fe_adap[i].fe); + }
}+ adap->num_frontends_initialized = 0; +
return 0; }
--- a/dvb/dvb-usb-ids.h+++ b/dvb/dvb-usb-ids.h @@ -37,6 +37,7 @@
#define USB_VID_HAUPPAUGE 0x2040 #define USB_VID_HYPER_PALTEK 0x1025 #define USB_VID_INTEL 0x8086+#define USB_VID_ITETECH 0x048d
#define USB_VID_KWORLD 0xeb2a #define USB_VID_KWORLD_2 0x1b80 #define USB_VID_KYE 0x0458@@ -80,7 +81,10 @@
#define USB_PID_AFATECH_AF9035_1003 0x1003 #define USB_PID_AFATECH_AF9035_9035 0x9035 #define USB_PID_AVERMEDIA_A825 0x0825+#define USB_PID_AVERMEDIA_A835 0xa835 +#define USB_PID_AVERMEDIA_B835 0xb835
#define USB_PID_TERRATEC_CINERGY_T_STICK 0x0093+#define USB_PID_TERRATEC_CINERGY_T_STICK_2 0x00aa
#define USB_PID_TREKSTOR_DVBT 0x901b #define USB_VID_ALINK_DTU 0xf170 #define USB_PID_ANSONIC_DVBT_USB 0x6000@@ -133,6 +137,7 @@
#define USB_PID_GRANDTEC_DVBT_USB_COLD 0x0fa0 #define USB_PID_GRANDTEC_DVBT_USB_WARM 0x0fa1 #define USB_PID_INTEL_CE9500 0x9500+#define USB_PID_ITETECH_IT9135 0x9135
#define USB_PID_KWORLD_399U 0xe399 #define USB_PID_KWORLD_399U_2 0xe400 #define USB_PID_KWORLD_395U 0xe396@@ -143,6 +148,7 @@
#define USB_PID_KWORLD_PC160_2T 0xc160 #define USB_PID_KWORLD_PC160_T 0xc161 #define USB_PID_KWORLD_UB383_T 0xe383+#define USB_PID_KWORLD_UB499_2T_T09 0xe409
#define USB_PID_KWORLD_VSTREAM_COLD 0x17de #define USB_PID_KWORLD_VSTREAM_WARM 0x17df #define USB_PID_TERRATEC_CINERGY_T_USB_XE 0x0055@@ -247,6 +253,9 @@
#define USB_PID_PCTV_200E 0x020e #define USB_PID_PCTV_400E 0x020f #define USB_PID_PCTV_450E 0x0222+#define USB_PID_PCTV_452E 0x021f +#define USB_PID_TECHNOTREND_CONNECT_S2_3600 0x3007 +#define USB_PID_TECHNOTREND_CONNECT_S2_3650_CI 0x300a
#define USB_PID_NEBULA_DIGITV 0x0201 #define USB_PID_DVICO_BLUEBIRD_LGDT 0xd820 #define USB_PID_DVICO_BLUEBIRD_LG064F_COLD 0xd500
--- a/dvb/dvb-usb-init.c+++ b/dvb/dvb-usb-init.c @@ -29,7 +29,7 @@ MODULE_PARM_DESC(force_pid_filter_usage, "force all dvb-usb-devices to use a PID
static int dvb_usb_adapter_init(struct dvb_usb_device *d, short *adapter_nrs) { struct dvb_usb_adapter *adap;- int ret, n; + int ret, n, o;
for (n = 0; n < d->props.num_adapters; n++) { adap = &d-;>adapter[n];@@ -38,31 +38,42 @@ static int dvb_usb_adapter_init(struct dvb_usb_device *d, short *adapter_nrs)
memcpy(&adap-;>props, &d-;>props.adapter[n], sizeof(struct dvb_usb_adapter_properties));+ for (o = 0; o < adap->props.num_frontends; o++) { + struct dvb_usb_adapter_fe_properties *props = &adap-;>props.fe[o];
/* speed - when running at FULL speed we need a HW PID filter */- if (d->udev->speed == USB_SPEED_FULL && !(adap->props.caps & DVB_USB_ADAP_HAS_PID_FILTER)) { + if (d->udev->speed == USB_SPEED_FULL && !(props->caps & DVB_USB_ADAP_HAS_PID_FILTER)) {
err("This USB2.0 device cannot be run on a USB1.1 port. (it lacks a hardware PID filter)"); return -ENODEV; }- if ((d->udev->speed == USB_SPEED_FULL && adap->props.caps & DVB_USB_ADAP_HAS_PID_FILTER) || - (adap->props.caps & DVB_USB_ADAP_NEED_PID_FILTERING)) { - info("will use the device's hardware PID filter (table count: %d).", adap->props.pid_filter_count); - adap->pid_filtering = 1; - adap->max_feed_count = adap->props.pid_filter_count; + if ((d->udev->speed == USB_SPEED_FULL && props->caps & DVB_USB_ADAP_HAS_PID_FILTER) || + (props->caps & DVB_USB_ADAP_NEED_PID_FILTERING)) { + info("will use the device's hardware PID filter (table count: %d).", props->pid_filter_count); + adap->fe_adap[o].pid_filtering = 1; + adap->fe_adap[o].max_feed_count = props->pid_filter_count;
} else { info("will pass the complete MPEG2 transport stream to the software demuxer.");- adap->pid_filtering = 0; - adap->max_feed_count = 255; + adap->fe_adap[o].pid_filtering = 0; + adap->fe_adap[o].max_feed_count = 255;
}- if (!adap->pid_filtering && + if (!adap->fe_adap[o].pid_filtering &&
dvb_usb_force_pid_filter_usage &&- adap->props.caps & DVB_USB_ADAP_HAS_PID_FILTER) { + props->caps & DVB_USB_ADAP_HAS_PID_FILTER) {
info("pid filter enabled by module option.");- adap->pid_filtering = 1; - adap->max_feed_count = adap->props.pid_filter_count; + adap->fe_adap[o].pid_filtering = 1; + adap->fe_adap[o].max_feed_count = props->pid_filter_count;
}+ if (props->size_of_priv > 0) { + adap->fe_adap[o].priv = kzalloc(props->size_of_priv, GFP_KERNEL); + if (adap->fe_adap[o].priv == NULL) { + err("no memory for priv for adapter %d fe %d.", n, o); + return -ENOMEM; + } + } + } +
if (adap->props.size_of_priv > 0) { adap->priv = kzalloc(adap->props.size_of_priv, GFP_KERNEL); if (adap->priv == NULL) {@@ -77,6 +88,10 @@ static int dvb_usb_adapter_init(struct dvb_usb_device *d, short *adapter_nrs)
return ret; }+ /* use exclusive FE lock if there is multiple shared FEs */ + if (adap->fe_adap[1].fe) + adap->dvb_adap.mfe_shared = 1; +
d->num_adapters_initialized++; d->state |= DVB_USB_STATE_DVB; }@@ -283,7 +298,7 @@ void dvb_usb_device_exit(struct usb_interface *intf)
} EXPORT_SYMBOL(dvb_usb_device_exit);-MODULE_VERSION("1.0"); +MODULE_VERSION("1.1");
MODULE_AUTHOR("Patrick Boettcher "); MODULE_DESCRIPTION("A library module containing commonly used USB and DVB function USB DVB devices");MODULE_LICENSE("GPL");
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: 73cf835e97fcb904e6fdef35e0d935f93921dfe1
Date: Fri, 20 Jan 2012 14:19:34 GMT
Commit diff
--- a/dvb/af9013.c+++ /dev/null @@ -1,1697 +0,0 @@ -/* - * DVB USB Linux driver for Afatech AF9015 DVB-T USB2.0 receiver - * - * Copyright (C) 2007 Antti Palosaari - * - * Thanks to Afatech who kindly provided information. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include kernel.h> -#include module.h> -#include moduleparam.h> -#include init.h> -#include delay.h> -#include string.h> -#include slab.h> -#include firmware.h> - -#include "dvb_frontend.h" -#include "af9013_priv.h" -#include "af9013.h" -#include "compat.h" - -int af9013_debug; - -struct af9013_state { - struct i2c_adapter *i2c; - struct dvb_frontend frontend; - - struct af9013_config config; - - u16 signal_strength; - u32 ber; - u32 ucblocks; - u16 snr; - u32 frequency; - unsigned long next_statistics_check; -}; - -static u8 regmask[8] = { 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff }; - -static int af9013_write_regs(struct af9013_state *state, u8 mbox, u16 reg, - u8 *val, u8 len) -{ - u8 buf[3+len]; - struct i2c_msg msg = { - .addr = state->config.demod_address, - .flags = 0, - .len = sizeof(buf), - .buf = buf }; - - buf[0] = reg >> 8; - buf[1] = reg & 0xff; - buf[2] = mbox; - memcpy(&buf;[3], val, len); - - if (i2c_transfer(state->i2c, &msg;, 1) != 1) { - warn("I2C write failed reg:%04x len:%d", reg, len); - return -EREMOTEIO; - } - return 0; -} - -static int af9013_write_ofdm_regs(struct af9013_state *state, u16 reg, u8 *val, - u8 len) -{ - u8 mbox = (1 << 0)|(1 << 1)|((len - 1) << 2)|(0 << 6)|(0 << 7); - return af9013_write_regs(state, mbox, reg, val, len); -} - -static int af9013_write_ofsm_regs(struct af9013_state *state, u16 reg, u8 *val, - u8 len) -{ - u8 mbox = (1 << 0)|(1 << 1)|((len - 1) << 2)|(1 << 6)|(1 << 7); - return af9013_write_regs(state, mbox, reg, val, len); -} - -/* write single register */ -static int af9013_write_reg(struct af9013_state *state, u16 reg, u8 val) -{ - return af9013_write_ofdm_regs(state, reg, &val;, 1); -} - -/* read single register */ -static int af9013_read_reg(struct af9013_state *state, u16 reg, u8 *val) -{ - u8 obuf[3] = { reg >> 8, reg & 0xff, 0 }; - u8 ibuf[1]; - struct i2c_msg msg[2] = { - { - .addr = state->config.demod_address, - .flags = 0, - .len = sizeof(obuf), - .buf = obuf - }, { - .addr = state->config.demod_address, - .flags = I2C_M_RD, - .len = sizeof(ibuf), - .buf = ibuf - } - }; - - if (i2c_transfer(state->i2c, msg, 2) != 2) { - warn("I2C read failed reg:%04x", reg); - return -EREMOTEIO; - } - *val = ibuf[0]; - return 0; -} - -static int af9013_write_reg_bits(struct af9013_state *state, u16 reg, u8 pos, - u8 len, u8 val) -{ - int ret; - u8 tmp, mask; - - ret = af9013_read_reg(state, reg, &tmp;); - if (ret) - return ret; - - mask = regmask[len - 1] << pos; - tmp = (tmp & ~mask) | ((val << pos) & mask); - - return af9013_write_reg(state, reg, tmp); -} - -static int af9013_read_reg_bits(struct af9013_state *state, u16 reg, u8 pos, - u8 len, u8 *val) -{ - int ret; - u8 tmp; - - ret = af9013_read_reg(state, reg, &tmp;); - if (ret) - return ret; - *val = (tmp >> pos) & regmask[len - 1]; - return 0; -} - -static int af9013_set_gpio(struct af9013_state *state, u8 gpio, u8 gpioval) -{ - int ret; - u8 pos; - u16 addr; - deb_info("%s: gpio:%d gpioval:%02x\n", __func__, gpio, gpioval); - -/* GPIO0 & GPIO1 0xd735 - GPIO2 & GPIO3 0xd736 */ - - switch (gpio) { - case 0: - case 1: - addr = 0xd735; - break; - case 2: - case 3: - addr = 0xd736; - break; - - default: - err("invalid gpio:%d\n", gpio); - ret = -EINVAL; - goto error; - }; - - switch (gpio) { - case 0: - case 2: - pos = 0; - break; - case 1: - case 3: - default: - pos = 4; - break; - }; - - ret = af9013_write_reg_bits(state, addr, pos, 4, gpioval); - -error: - return ret; -} - -static u32 af913_div(u32 a, u32 b, u32 x) -{ - u32 r = 0, c = 0, i; - deb_info("%s: a:%d b:%d x:%d\n", __func__, a, b, x); - - if (a > b) { - c = a / b; - a = a - c * b; - } - - for (i = 0; i < x; i++) { - if (a >= b) { - r += 1; - a -= b; - } - a <<= 1; - r <<= 1; - } - r = (c << (u32)x) + r; - - deb_info("%s: a:%d b:%d x:%d r:%d r:%x\n", __func__, a, b, x, r, r); - return r; -} - -static int af9013_set_coeff(struct af9013_state *state, fe_bandwidth_t bw) -{ - int ret = 0; - u8 i = 0; - u8 buf[24]; - u32 uninitialized_var(ns_coeff1_2048nu); - u32 uninitialized_var(ns_coeff1_8191nu); - u32 uninitialized_var(ns_coeff1_8192nu); - u32 uninitialized_var(ns_coeff1_8193nu); - u32 uninitialized_var(ns_coeff2_2k); - u32 uninitialized_var(ns_coeff2_8k); - - deb_info("%s: adc_clock:%d bw:%d\n", __func__, - state->config.adc_clock, bw); - - switch (state->config.adc_clock) { - case 28800: /* 28.800 MHz */ - switch (bw) { - case BANDWIDTH_6_MHZ: - ns_coeff1_2048nu = 0x01e79e7a; - ns_coeff1_8191nu = 0x0079eb6e; - ns_coeff1_8192nu = 0x0079e79e; - ns_coeff1_8193nu = 0x0079e3cf; - ns_coeff2_2k = 0x00f3cf3d; - ns_coeff2_8k = 0x003cf3cf; - break; - case BANDWIDTH_7_MHZ: - ns_coeff1_2048nu = 0x0238e38e; - ns_coeff1_8191nu = 0x008e3d55; - ns_coeff1_8192nu = 0x008e38e4; - ns_coeff1_8193nu = 0x008e3472; - ns_coeff2_2k = 0x011c71c7; - ns_coeff2_8k = 0x00471c72; - break; - case BANDWIDTH_8_MHZ: - ns_coeff1_2048nu = 0x028a28a3; - ns_coeff1_8191nu = 0x00a28f3d; - ns_coeff1_8192nu = 0x00a28a29; - ns_coeff1_8193nu = 0x00a28514; - ns_coeff2_2k = 0x01451451; - ns_coeff2_8k = 0x00514514; - break; - default: - ret = -EINVAL; - } - break; - case 20480: /* 20.480 MHz */ - switch (bw) { - case BANDWIDTH_6_MHZ: - ns_coeff1_2048nu = 0x02adb6dc; - ns_coeff1_8191nu = 0x00ab7313; - ns_coeff1_8192nu = 0x00ab6db7; - ns_coeff1_8193nu = 0x00ab685c; - ns_coeff2_2k = 0x0156db6e; - ns_coeff2_8k = 0x0055b6dc; - break; - case BANDWIDTH_7_MHZ: - ns_coeff1_2048nu = 0x03200001; - ns_coeff1_8191nu = 0x00c80640; - ns_coeff1_8192nu = 0x00c80000; - ns_coeff1_8193nu = 0x00c7f9c0; - ns_coeff2_2k = 0x01900000; - ns_coeff2_8k = 0x00640000; - break; - case BANDWIDTH_8_MHZ: - ns_coeff1_2048nu = 0x03924926; - ns_coeff1_8191nu = 0x00e4996e; - ns_coeff1_8192nu = 0x00e49249; - ns_coeff1_8193nu = 0x00e48b25; - ns_coeff2_2k = 0x01c92493; - ns_coeff2_8k = 0x00724925; - break; - default: - ret = -EINVAL; - } - break; - case 28000: /* 28.000 MHz */ - switch (bw) { - case BANDWIDTH_6_MHZ: - ns_coeff1_2048nu = 0x01f58d10; - ns_coeff1_8191nu = 0x007d672f; - ns_coeff1_8192nu = 0x007d6344; - ns_coeff1_8193nu = 0x007d5f59; - ns_coeff2_2k = 0x00fac688; - ns_coeff2_8k = 0x003eb1a2; - break; - case BANDWIDTH_7_MHZ: - ns_coeff1_2048nu = 0x02492492; - ns_coeff1_8191nu = 0x00924db7; - ns_coeff1_8192nu = 0x00924925; - ns_coeff1_8193nu = 0x00924492; - ns_coeff2_2k = 0x01249249; - ns_coeff2_8k = 0x00492492; - break; - case BANDWIDTH_8_MHZ: - ns_coeff1_2048nu = 0x029cbc15; - ns_coeff1_8191nu = 0x00a7343f; - ns_coeff1_8192nu = 0x00a72f05; - ns_coeff1_8193nu = 0x00a729cc; - ns_coeff2_2k = 0x014e5e0a; - ns_coeff2_8k = 0x00539783; - break; - default: - ret = -EINVAL; - } - break; - case 25000: /* 25.000 MHz */ - switch (bw) { - case BANDWIDTH_6_MHZ: - ns_coeff1_2048nu = 0x0231bcb5; - ns_coeff1_8191nu = 0x008c7391; - ns_coeff1_8192nu = 0x008c6f2d; - ns_coeff1_8193nu = 0x008c6aca; - ns_coeff2_2k = 0x0118de5b; - ns_coeff2_8k = 0x00463797; - break; - case BANDWIDTH_7_MHZ: - ns_coeff1_2048nu = 0x028f5c29; - ns_coeff1_8191nu = 0x00a3dc29; - ns_coeff1_8192nu = 0x00a3d70a; - ns_coeff1_8193nu = 0x00a3d1ec; - ns_coeff2_2k = 0x0147ae14; - ns_coeff2_8k = 0x0051eb85; - break; - case BANDWIDTH_8_MHZ: - ns_coeff1_2048nu = 0x02ecfb9d; - ns_coeff1_8191nu = 0x00bb44c1; - ns_coeff1_8192nu = 0x00bb3ee7; - ns_coeff1_8193nu = 0x00bb390d; - ns_coeff2_2k = 0x01767dce; - ns_coeff2_8k = 0x005d9f74; - break; - default: - ret = -EINVAL; - } - break; - default: - err("invalid xtal"); - return -EINVAL; - } - if (ret) { - err("invalid bandwidth"); - return ret; - } - - buf[i++] = (u8) ((ns_coeff1_2048nu & 0x03000000) >> 24); - buf[i++] = (u8) ((ns_coeff1_2048nu & 0x00ff0000) >> 16); - buf[i++] = (u8) ((ns_coeff1_2048nu & 0x0000ff00) >> 8); - buf[i++] = (u8) ((ns_coeff1_2048nu & 0x000000ff)); - buf[i++] = (u8) ((ns_coeff2_2k & 0x01c00000) >> 22); - buf[i++] = (u8) ((ns_coeff2_2k & 0x003fc000) >> 14); - buf[i++] = (u8) ((ns_coeff2_2k & 0x00003fc0) >> 6); - buf[i++] = (u8) ((ns_coeff2_2k & 0x0000003f)); - buf[i++] = (u8) ((ns_coeff1_8191nu & 0x03000000) >> 24); - buf[i++] = (u8) ((ns_coeff1_8191nu & 0x00ffc000) >> 16); - buf[i++] = (u8) ((ns_coeff1_8191nu & 0x0000ff00) >> 8); - buf[i++] = (u8) ((ns_coeff1_8191nu & 0x000000ff)); - buf[i++] = (u8) ((ns_coeff1_8192nu & 0x03000000) >> 24); - buf[i++] = (u8) ((ns_coeff1_8192nu & 0x00ffc000) >> 16); - buf[i++] = (u8) ((ns_coeff1_8192nu & 0x0000ff00) >> 8); - buf[i++] = (u8) ((ns_coeff1_8192nu & 0x000000ff)); - buf[i++] = (u8) ((ns_coeff1_8193nu & 0x03000000) >> 24); - buf[i++] = (u8) ((ns_coeff1_8193nu & 0x00ffc000) >> 16); - buf[i++] = (u8) ((ns_coeff1_8193nu & 0x0000ff00) >> 8); - buf[i++] = (u8) ((ns_coeff1_8193nu & 0x000000ff)); - buf[i++] = (u8) ((ns_coeff2_8k & 0x01c00000) >> 22); - buf[i++] = (u8) ((ns_coeff2_8k & 0x003fc000) >> 14); - buf[i++] = (u8) ((ns_coeff2_8k & 0x00003fc0) >> 6); - buf[i++] = (u8) ((ns_coeff2_8k & 0x0000003f)); - - deb_info("%s: coeff:", __func__); - debug_dump(buf, sizeof(buf), deb_info); - - /* program */ - for (i = 0; i < sizeof(buf); i++) { - ret = af9013_write_reg(state, 0xae00 + i, buf[i]); - if (ret) - break; - } - - return ret; -} - -static int af9013_set_adc_ctrl(struct af9013_state *state) -{ - int ret; - u8 buf[3], tmp, i; - u32 adc_cw; - - deb_info("%s: adc_clock:%d\n", __func__, state->config.adc_clock); - - /* adc frequency type */ - switch (state->config.adc_clock) { - case 28800: /* 28.800 MHz */ - tmp = 0; - break; - case 20480: /* 20.480 MHz */ - tmp = 1; - break; - case 28000: /* 28.000 MHz */ - tmp = 2; - break; - case 25000: /* 25.000 MHz */ - tmp = 3; - break; - default: - err("invalid xtal"); - return -EINVAL; - } - - adc_cw = af913_div(state->config.adc_clock*1000, 1000000ul, 19ul); - - buf[0] = (u8) ((adc_cw & 0x000000ff)); - buf[1] = (u8) ((adc_cw & 0x0000ff00) >> 8); - buf[2] = (u8) ((adc_cw & 0x00ff0000) >> 16); - - deb_info("%s: adc_cw:", __func__); - debug_dump(buf, sizeof(buf), deb_info); - - /* program */ - for (i = 0; i < sizeof(buf); i++) { - ret = af9013_write_reg(state, 0xd180 + i, buf[i]); - if (ret) - goto error; - } - ret = af9013_write_reg_bits(state, 0x9bd2, 0, 4, tmp); -error: - return ret; -} - -static int af9013_set_freq_ctrl(struct af9013_state *state, fe_bandwidth_t bw) -{ - int ret; - u16 addr; - u8 buf[3], i, j; - u32 adc_freq, freq_cw; - s8 bfs_spec_inv; - int if_sample_freq; - - for (j = 0; j < 3; j++) { - if (j == 0) { - addr = 0xd140; /* fcw normal */ - bfs_spec_inv = state->config.rf_spec_inv ? -1 : 1; - } else if (j == 1) { - addr = 0x9be7; /* fcw dummy ram */ - bfs_spec_inv = state->config.rf_spec_inv ? -1 : 1; - } else { - addr = 0x9bea; /* fcw inverted */ - bfs_spec_inv = state->config.rf_spec_inv ? 1 : -1; - } - - adc_freq = state->config.adc_clock * 1000; - if_sample_freq = state->config.tuner_if * 1000; - - /* TDA18271 uses different sampling freq for every bw */ - if (state->config.tuner == AF9013_TUNER_TDA18271) { - switch (bw) { - case BANDWIDTH_6_MHZ: - if_sample_freq = 3300000; /* 3.3 MHz */ - break; - case BANDWIDTH_7_MHZ: - if_sample_freq = 3800000; /* 3.8 MHz */ - break; - case BANDWIDTH_8_MHZ: - default: - if_sample_freq = 4300000; /* 4.3 MHz */ - break; - } - } - - while (if_sample_freq > (adc_freq / 2)) - if_sample_freq = if_sample_freq - adc_freq; - - if (if_sample_freq >= 0) - bfs_spec_inv = bfs_spec_inv * (-1); - else - if_sample_freq = if_sample_freq * (-1); - - freq_cw = af913_div(if_sample_freq, adc_freq, 23ul); - - if (bfs_spec_inv == -1) - freq_cw = 0x00800000 - freq_cw; - - buf[0] = (u8) ((freq_cw & 0x000000ff)); - buf[1] = (u8) ((freq_cw & 0x0000ff00) >> 8); - buf[2] = (u8) ((freq_cw & 0x007f0000) >> 16); - - - deb_info("%s: freq_cw:", __func__); - debug_dump(buf, sizeof(buf), deb_info); - - /* program */ - for (i = 0; i < sizeof(buf); i++) { - ret = af9013_write_reg(state, addr++, buf[i]); - if (ret) - goto error; - } - } -error: - return ret; -} - -static int af9013_set_ofdm_params(struct af9013_state *state, - struct dvb_ofdm_parameters *params, u8 *auto_mode) -{ - int ret; - u8 i, buf[3] = {0, 0, 0}; - *auto_mode = 0; /* set if parameters are requested to auto set */ - - /* Try auto-detect transmission parameters in case of AUTO requested or - garbage parameters given by application for compatibility. - MPlayer seems to provide garbage parameters currently. */ - - switch (params->transmission_mode) { - case TRANSMISSION_MODE_AUTO: - *auto_mode = 1; - case TRANSMISSION_MODE_2K: - break; - case TRANSMISSION_MODE_8K: - buf[0] |= (1 << 0); - break; - default: - deb_info("%s: invalid transmission_mode\n", __func__); - *auto_mode = 1; - } - - switch (params->guard_interval) { - case GUARD_INTERVAL_AUTO: - *auto_mode = 1; - case GUARD_INTERVAL_1_32: - break; - case GUARD_INTERVAL_1_16: - buf[0] |= (1 << 2); - break; - case GUARD_INTERVAL_1_8: - buf[0] |= (2 << 2); - break; - case GUARD_INTERVAL_1_4: - buf[0] |= (3 << 2); - break; - default: - deb_info("%s: invalid guard_interval\n", __func__); - *auto_mode = 1; - } - - switch (params->hierarchy_information) { - case HIERARCHY_AUTO: - *auto_mode = 1; - case HIERARCHY_NONE: - break; - case HIERARCHY_1: - buf[0] |= (1 << 4); - break; - case HIERARCHY_2: - buf[0] |= (2 << 4); - break; - case HIERARCHY_4: - buf[0] |= (3 << 4); - break; - default: - deb_info("%s: invalid hierarchy_information\n", __func__); - *auto_mode = 1; - }; - - switch (params->constellation) { - case QAM_AUTO: - *auto_mode = 1; - case QPSK: - break; - case QAM_16: - buf[1] |= (1 << 6); - break; - case QAM_64: - buf[1] |= (2 << 6); - break; - default: - deb_info("%s: invalid constellation\n", __func__); - *auto_mode = 1; - } - - /* Use HP. How and which case we can switch to LP? */ - buf[1] |= (1 << 4); - - switch (params->code_rate_HP) { - case FEC_AUTO: - *auto_mode = 1; - case FEC_1_2: - break; - case FEC_2_3: - buf[2] |= (1 << 0); - break; - case FEC_3_4: - buf[2] |= (2 << 0); - break; - case FEC_5_6: - buf[2] |= (3 << 0); - break; - case FEC_7_8: - buf[2] |= (4 << 0); - break; - default: - deb_info("%s: invalid code_rate_HP\n", __func__); - *auto_mode = 1; - } - - switch (params->code_rate_LP) { - case FEC_AUTO: - /* if HIERARCHY_NONE and FEC_NONE then LP FEC is set to FEC_AUTO - by dvb_frontend.c for compatibility */ - if (params->hierarchy_information != HIERARCHY_NONE) - *auto_mode = 1; - case FEC_1_2: - break; - case FEC_2_3: - buf[2] |= (1 << 3); - break; - case FEC_3_4: - buf[2] |= (2 << 3); - break; - case FEC_5_6: - buf[2] |= (3 << 3); - break; - case FEC_7_8: - buf[2] |= (4 << 3); - break; - case FEC_NONE: - if (params->hierarchy_information == HIERARCHY_AUTO) - break; - default: - deb_info("%s: invalid code_rate_LP\n", __func__); - *auto_mode = 1; - } - - switch (params->bandwidth) { - case BANDWIDTH_6_MHZ: - break; - case BANDWIDTH_7_MHZ: - buf[1] |= (1 << 2); - break; - case BANDWIDTH_8_MHZ: - buf[1] |= (2 << 2); - break; - default: - deb_info("%s: invalid bandwidth\n", __func__); - buf[1] |= (2 << 2); /* cannot auto-detect BW, try 8 MHz */ - } - - /* program */ - for (i = 0; i < sizeof(buf); i++) { - ret = af9013_write_reg(state, 0xd3c0 + i, buf[i]); - if (ret) - break; - } - - return ret; -} - -static int af9013_reset(struct af9013_state *state, u8 sleep) -{ - int ret; - u8 tmp, i; - deb_info("%s\n", __func__); - - /* enable OFDM reset */ - ret = af9013_write_reg_bits(state, 0xd417, 4, 1, 1); - if (ret) - goto error; - - /* start reset mechanism */ - ret = af9013_write_reg(state, 0xaeff, 1); - if (ret) - goto error; - - /* reset is done when bit 1 is set */ - for (i = 0; i < 150; i++) { - ret = af9013_read_reg_bits(state, 0xd417, 1, 1, &tmp;); - if (ret) - goto error; - if (tmp) - break; /* reset done */ - msleep(10); - } - if (!tmp) - return -ETIMEDOUT; - - /* don't clear reset when going to sleep */ - if (!sleep) { - /* clear OFDM reset */ - ret = af9013_write_reg_bits(state, 0xd417, 1, 1, 0); - if (ret) - goto error; - - /* disable OFDM reset */ - ret = af9013_write_reg_bits(state, 0xd417, 4, 1, 0); - } -error: - return ret; -} - -static int af9013_power_ctrl(struct af9013_state *state, u8 onoff) -{ - int ret; - deb_info("%s: onoff:%d\n", __func__, onoff); - - if (onoff) { - /* power on */ - ret = af9013_write_reg_bits(state, 0xd73a, 3, 1, 0); - if (ret) - goto error; - ret = af9013_write_reg_bits(state, 0xd417, 1, 1, 0); - if (ret) - goto error; - ret = af9013_write_reg_bits(state, 0xd417, 4, 1, 0); - } else { - /* power off */ - ret = af9013_reset(state, 1); - if (ret) - goto error; - ret = af9013_write_reg_bits(state, 0xd73a, 3, 1, 1); - } -error: - return ret; -} - -static int af9013_lock_led(struct af9013_state *state, u8 onoff) -{ - deb_info("%s: onoff:%d\n", __func__, onoff); - - return af9013_write_reg_bits(state, 0xd730, 0, 1, onoff); -} - -static int af9013_set_frontend(struct dvb_frontend *fe, - struct dvb_frontend_parameters *params) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret; - u8 auto_mode; /* auto set TPS */ - - deb_info("%s: freq:%d bw:%d\n", __func__, params->frequency, - params->u.ofdm.bandwidth); - - state->frequency = params->frequency; - - /* program CFOE coefficients */ - ret = af9013_set_coeff(state, params->u.ofdm.bandwidth); - if (ret) - goto error; - - /* program frequency control */ - ret = af9013_set_freq_ctrl(state, params->u.ofdm.bandwidth); - if (ret) - goto error; - - /* clear TPS lock flag (inverted flag) */ - ret = af9013_write_reg_bits(state, 0xd330, 3, 1, 1); - if (ret) - goto error; - - /* clear MPEG2 lock flag */ - ret = af9013_write_reg_bits(state, 0xd507, 6, 1, 0); - if (ret) - goto error; - - /* empty channel function */ - ret = af9013_write_reg_bits(state, 0x9bfe, 0, 1, 0); - if (ret) - goto error; - - /* empty DVB-T channel function */ - ret = af9013_write_reg_bits(state, 0x9bc2, 0, 1, 0); - if (ret) - goto error; - - /* program tuner */ - if (fe->ops.tuner_ops.set_params) - fe->ops.tuner_ops.set_params(fe, params); - - /* program TPS and bandwidth, check if auto mode needed */ - ret = af9013_set_ofdm_params(state, ¶ms-;>u.ofdm, &auto;_mode); - if (ret) - goto error; - - if (auto_mode) { - /* clear easy mode flag */ - ret = af9013_write_reg(state, 0xaefd, 0); - deb_info("%s: auto TPS\n", __func__); - } else { - /* set easy mode flag */ - ret = af9013_write_reg(state, 0xaefd, 1); - if (ret) - goto error; - ret = af9013_write_reg(state, 0xaefe, 0); - deb_info("%s: manual TPS\n", __func__); - } - if (ret) - goto error; - - /* everything is set, lets try to receive channel - OFSM GO! */ - ret = af9013_write_reg(state, 0xffff, 0); - if (ret) - goto error; - -error: - return ret; -} - -static int af9013_get_frontend(struct dvb_frontend *fe, - struct dvb_frontend_parameters *p) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret; - u8 i, buf[3]; - deb_info("%s\n", __func__); - - /* read TPS registers */ - for (i = 0; i < 3; i++) { - ret = af9013_read_reg(state, 0xd3c0 + i, &buf;[i]); - if (ret) - goto error; - } - - switch ((buf[1] >> 6) & 3) { - case 0: - p->u.ofdm.constellation = QPSK; - break; - case 1: - p->u.ofdm.constellation = QAM_16; - break; - case 2: - p->u.ofdm.constellation = QAM_64; - break; - } - - switch ((buf[0] >> 0) & 3) { - case 0: - p->u.ofdm.transmission_mode = TRANSMISSION_MODE_2K; - break; - case 1: - p->u.ofdm.transmission_mode = TRANSMISSION_MODE_8K; - } - - switch ((buf[0] >> 2) & 3) { - case 0: - p->u.ofdm.guard_interval = GUARD_INTERVAL_1_32; - break; - case 1: - p->u.ofdm.guard_interval = GUARD_INTERVAL_1_16; - break; - case 2: - p->u.ofdm.guard_interval = GUARD_INTERVAL_1_8; - break; - case 3: - p->u.ofdm.guard_interval = GUARD_INTERVAL_1_4; - break; - } - - switch ((buf[0] >> 4) & 7) { - case 0: - p->u.ofdm.hierarchy_information = HIERARCHY_NONE; - break; - case 1: - p->u.ofdm.hierarchy_information = HIERARCHY_1; - break; - case 2: - p->u.ofdm.hierarchy_information = HIERARCHY_2; - break; - case 3: - p->u.ofdm.hierarchy_information = HIERARCHY_4; - break; - } - - switch ((buf[2] >> 0) & 7) { - case 0: - p->u.ofdm.code_rate_HP = FEC_1_2; - break; - case 1: - p->u.ofdm.code_rate_HP = FEC_2_3; - break; - case 2: - p->u.ofdm.code_rate_HP = FEC_3_4; - break; - case 3: - p->u.ofdm.code_rate_HP = FEC_5_6; - break; - case 4: - p->u.ofdm.code_rate_HP = FEC_7_8; - break; - } - - switch ((buf[2] >> 3) & 7) { - case 0: - p->u.ofdm.code_rate_LP = FEC_1_2; - break; - case 1: - p->u.ofdm.code_rate_LP = FEC_2_3; - break; - case 2: - p->u.ofdm.code_rate_LP = FEC_3_4; - break; - case 3: - p->u.ofdm.code_rate_LP = FEC_5_6; - break; - case 4: - p->u.ofdm.code_rate_LP = FEC_7_8; - break; - } - - switch ((buf[1] >> 2) & 3) { - case 0: - p->u.ofdm.bandwidth = BANDWIDTH_6_MHZ; - break; - case 1: - p->u.ofdm.bandwidth = BANDWIDTH_7_MHZ; - break; - case 2: - p->u.ofdm.bandwidth = BANDWIDTH_8_MHZ; - break; - } - - p->inversion = INVERSION_AUTO; - p->frequency = state->frequency; - -error: - return ret; -} - -static int af9013_update_ber_unc(struct dvb_frontend *fe) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret; - u8 buf[3], i; - u32 error_bit_count = 0; - u32 total_bit_count = 0; - u32 abort_packet_count = 0; - - state->ber = 0; - - /* check if error bit count is ready */ - ret = af9013_read_reg_bits(state, 0xd391, 4, 1, &buf;[0]); - if (ret) - goto error; - if (!buf[0]) - goto exit; - - /* get RSD packet abort count */ - for (i = 0; i < 2; i++) { - ret = af9013_read_reg(state, 0xd38a + i, &buf;[i]); - if (ret) - goto error; - } - abort_packet_count = (buf[1] << 8) + buf[0]; - - /* get error bit count */ - for (i = 0; i < 3; i++) { - ret = af9013_read_reg(state, 0xd387 + i, &buf;[i]); - if (ret) - goto error; - } - error_bit_count = (buf[2] << 16) + (buf[1] << 8) + buf[0]; - error_bit_count = error_bit_count - abort_packet_count * 8 * 8; - - /* get used RSD counting period (10000 RSD packets used) */ - for (i = 0; i < 2; i++) { - ret = af9013_read_reg(state, 0xd385 + i, &buf;[i]); - if (ret) - goto error; - } - total_bit_count = (buf[1] << 8) + buf[0]; - total_bit_count = total_bit_count - abort_packet_count; - total_bit_count = total_bit_count * 204 * 8; - - if (total_bit_count) - state->ber = error_bit_count * 1000000000 / total_bit_count; - - state->ucblocks += abort_packet_count; - - deb_info("%s: err bits:%d total bits:%d abort count:%d\n", __func__, - error_bit_count, total_bit_count, abort_packet_count); - - /* set BER counting range */ - ret = af9013_write_reg(state, 0xd385, 10000 & 0xff); - if (ret) - goto error; - ret = af9013_write_reg(state, 0xd386, 10000 >> 8); - if (ret) - goto error; - /* reset and start BER counter */ - ret = af9013_write_reg_bits(state, 0xd391, 4, 1, 1); - if (ret) - goto error; - -exit: -error: - return ret; -} - -static int af9013_update_snr(struct dvb_frontend *fe) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret; - u8 buf[3], i, len; - u32 quant = 0; - struct snr_table *uninitialized_var(snr_table); - - /* check if quantizer ready (for snr) */ - ret = af9013_read_reg_bits(state, 0xd2e1, 3, 1, &buf;[0]); - if (ret) - goto error; - if (buf[0]) { - /* quantizer ready - read it */ - for (i = 0; i < 3; i++) { - ret = af9013_read_reg(state, 0xd2e3 + i, &buf;[i]); - if (ret) - goto error; - } - quant = (buf[2] << 16) + (buf[1] << 8) + buf[0]; - - /* read current constellation */ - ret = af9013_read_reg(state, 0xd3c1, &buf;[0]); - if (ret) - goto error; - - switch ((buf[0] >> 6) & 3) { - case 0: - len = ARRAY_SIZE(qpsk_snr_table); - snr_table = qpsk_snr_table; - break; - case 1: - len = ARRAY_SIZE(qam16_snr_table); - snr_table = qam16_snr_table; - break; - case 2: - len = ARRAY_SIZE(qam64_snr_table); - snr_table = qam64_snr_table; - break; - default: - len = 0; - break; - } - - if (len) { - for (i = 0; i < len; i++) { - if (quant < snr_table[i].val) { - state->snr = snr_table[i].snr * 10; - break; - } - } - } - - /* set quantizer super frame count */ - ret = af9013_write_reg(state, 0xd2e2, 1); - if (ret) - goto error; - - /* check quantizer availability */ - for (i = 0; i < 10; i++) { - msleep(10); - ret = af9013_read_reg_bits(state, 0xd2e6, 0, 1, - &buf;[0]); - if (ret) - goto error; - if (!buf[0]) - break; - } - - /* reset quantizer */ - ret = af9013_write_reg_bits(state, 0xd2e1, 3, 1, 1); - if (ret) - goto error; - } - -error: - return ret; -} - -static int af9013_update_signal_strength(struct dvb_frontend *fe) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret; - u8 tmp0; - u8 rf_gain, rf_50, rf_80, if_gain, if_50, if_80; - int signal_strength; - - deb_info("%s\n", __func__); - - state->signal_strength = 0; - - ret = af9013_read_reg_bits(state, 0x9bee, 0, 1, &tmp0;); - if (ret) - goto error; - if (tmp0) { - ret = af9013_read_reg(state, 0x9bbd, &rf;_50); - if (ret) - goto error; - ret = af9013_read_reg(state, 0x9bd0, &rf;_80); - if (ret) - goto error; - ret = af9013_read_reg(state, 0x9be2, &if;_50); - if (ret) - goto error; - ret = af9013_read_reg(state, 0x9be4, &if;_80); - if (ret) - goto error; - ret = af9013_read_reg(state, 0xd07c, &rf;_gain); - if (ret) - goto error; - ret = af9013_read_reg(state, 0xd07d, &if;_gain); - if (ret) - goto error; - signal_strength = (0xffff / (9 * (rf_50 + if_50) - \ - 11 * (rf_80 + if_80))) * (10 * (rf_gain + if_gain) - \ - 11 * (rf_80 + if_80)); - if (signal_strength < 0) - signal_strength = 0; - else if (signal_strength > 0xffff) - signal_strength = 0xffff; - - state->signal_strength = signal_strength; - } - -error: - return ret; -} - -static int af9013_update_statistics(struct dvb_frontend *fe) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret; - - if (time_before(jiffies, state->next_statistics_check)) - return 0; - - /* set minimum statistic update interval */ - state->next_statistics_check = jiffies + msecs_to_jiffies(1200); - - ret = af9013_update_signal_strength(fe); - if (ret) - goto error; - ret = af9013_update_snr(fe); - if (ret) - goto error; - ret = af9013_update_ber_unc(fe); - if (ret) - goto error; - -error: - return ret; -} - -static int af9013_get_tune_settings(struct dvb_frontend *fe, - struct dvb_frontend_tune_settings *fesettings) -{ - fesettings->min_delay_ms = 800; - fesettings->step_size = 0; - fesettings->max_drift = 0; - - return 0; -} - -static int af9013_read_status(struct dvb_frontend *fe, fe_status_t *status) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret = 0; - u8 tmp; - *status = 0; - - /* TPS lock */ - ret = af9013_read_reg_bits(state, 0xd330, 3, 1, &tmp;); - if (ret) - goto error; - if (tmp) - *status |= FE_HAS_VITERBI | FE_HAS_CARRIER | FE_HAS_SIGNAL; - - /* MPEG2 lock */ - ret = af9013_read_reg_bits(state, 0xd507, 6, 1, &tmp;); - if (ret) - goto error; - if (tmp) - *status |= FE_HAS_SYNC | FE_HAS_LOCK; - - if (!(*status & FE_HAS_SIGNAL)) { - /* AGC lock */ - ret = af9013_read_reg_bits(state, 0xd1a0, 6, 1, &tmp;); - if (ret) - goto error; - if (tmp) - *status |= FE_HAS_SIGNAL; - } - - if (!(*status & FE_HAS_CARRIER)) { - /* CFO lock */ - ret = af9013_read_reg_bits(state, 0xd333, 7, 1, &tmp;); - if (ret) - goto error; - if (tmp) - *status |= FE_HAS_CARRIER; - } - - if (!(*status & FE_HAS_CARRIER)) { - /* SFOE lock */ - ret = af9013_read_reg_bits(state, 0xd334, 6, 1, &tmp;); - if (ret) - goto error; - if (tmp) - *status |= FE_HAS_CARRIER; - } - - ret = af9013_update_statistics(fe); - -error: - return ret; -} - - -static int af9013_read_ber(struct dvb_frontend *fe, u32 *ber) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret; - ret = af9013_update_statistics(fe); - *ber = state->ber; - return ret; -} - -static int af9013_read_signal_strength(struct dvb_frontend *fe, u16 *strength) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret; - ret = af9013_update_statistics(fe); - *strength = state->signal_strength; - return ret; -} - -static int af9013_read_snr(struct dvb_frontend *fe, u16 *snr) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret; - ret = af9013_update_statistics(fe); - *snr = state->snr; - return ret; -} - -static int af9013_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret; - ret = af9013_update_statistics(fe); - *ucblocks = state->ucblocks; - return ret; -} - -static int af9013_sleep(struct dvb_frontend *fe) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret; - deb_info("%s\n", __func__); - - ret = af9013_lock_led(state, 0); - if (ret) - goto error; - - ret = af9013_power_ctrl(state, 0); -error: - return ret; -} - -static int af9013_init(struct dvb_frontend *fe) -{ - struct af9013_state *state = fe->demodulator_priv; - int ret, i, len; - u8 tmp0, tmp1; - struct regdesc *init; - deb_info("%s\n", __func__); - - /* reset OFDM */ - ret = af9013_reset(state, 0); - if (ret) - goto error; - - /* power on */ - ret = af9013_power_ctrl(state, 1); - if (ret) - goto error; - - /* enable ADC */ - ret = af9013_write_reg(state, 0xd73a, 0xa4); - if (ret) - goto error; - - /* write API version to firmware */ - for (i = 0; i < sizeof(state->config.api_version); i++) { - ret = af9013_write_reg(state, 0x9bf2 + i, - state->config.api_version[i]); - if (ret) - goto error; - } - - /* program ADC control */ - ret = af9013_set_adc_ctrl(state); - if (ret) - goto error; - - /* set I2C master clock */ - ret = af9013_write_reg(state, 0xd416, 0x14); - if (ret) - goto error; - - /* set 16 embx */ - ret = af9013_write_reg_bits(state, 0xd700, 1, 1, 1); - if (ret) - goto error; - - /* set no trigger */ - ret = af9013_write_reg_bits(state, 0xd700, 2, 1, 0); - if (ret) - goto error; - - /* set read-update bit for constellation */ - ret = af9013_write_reg_bits(state, 0xd371, 1, 1, 1); - if (ret) - goto error; - - /* enable FEC monitor */ - ret = af9013_write_reg_bits(state, 0xd392, 1, 1, 1); - if (ret) - goto error; - - /* load OFSM settings */ - deb_info("%s: load ofsm settings\n", __func__); - len = ARRAY_SIZE(ofsm_init); - init = ofsm_init; - for (i = 0; i < len; i++) { - ret = af9013_write_reg_bits(state, init[i].addr, init[i].pos, - init[i].len, init[i].val); - if (ret) - goto error; - } - - /* load tuner specific settings */ - deb_info("%s: load tuner specific settings\n", __func__); - switch (state->config.tuner) { - case AF9013_TUNER_MXL5003D: - len = ARRAY_SIZE(tuner_init_mxl5003d); - init = tuner_init_mxl5003d; - break; - case AF9013_TUNER_MXL5005D: - case AF9013_TUNER_MXL5005R: - len = ARRAY_SIZE(tuner_init_mxl5005); - init = tuner_init_mxl5005; - break; - case AF9013_TUNER_ENV77H11D5: - len = ARRAY_SIZE(tuner_init_env77h11d5); - init = tuner_init_env77h11d5; - break; - case AF9013_TUNER_MT2060: - len = ARRAY_SIZE(tuner_init_mt2060); - init = tuner_init_mt2060; - break; - case AF9013_TUNER_MC44S803: - len = ARRAY_SIZE(tuner_init_mc44s803); - init = tuner_init_mc44s803; - break; - case AF9013_TUNER_QT1010: - case AF9013_TUNER_QT1010A: - len = ARRAY_SIZE(tuner_init_qt1010); - init = tuner_init_qt1010; - break; - case AF9013_TUNER_MT2060_2: - len = ARRAY_SIZE(tuner_init_mt2060_2); - init = tuner_init_mt2060_2; - break; - case AF9013_TUNER_TDA18271: - len = ARRAY_SIZE(tuner_init_tda18271); - init = tuner_init_tda18271; - break; - case AF9013_TUNER_UNKNOWN: - default: - len = ARRAY_SIZE(tuner_init_unknown); - init = tuner_init_unknown; - break; - } - - for (i = 0; i < len; i++) { - ret = af9013_write_reg_bits(state, init[i].addr, init[i].pos, - init[i].len, init[i].val); - if (ret) - goto error; - } - - /* set TS mode */ - deb_info("%s: setting ts mode\n", __func__); - tmp0 = 0; /* parallel mode */ - tmp1 = 0; /* serial mode */ - switch (state->config.output_mode) { - case AF9013_OUTPUT_MODE_PARALLEL: - tmp0 = 1; - break; - case AF9013_OUTPUT_MODE_SERIAL: - tmp1 = 1; - break; - case AF9013_OUTPUT_MODE_USB: - /* usb mode for AF9015 */ - default: - break; - } - ret = af9013_write_reg_bits(state, 0xd500, 1, 1, tmp0); /* parallel */ - if (ret) - goto error; - ret = af9013_write_reg_bits(state, 0xd500, 2, 1, tmp1); /* serial */ - if (ret) - goto error; - - /* enable lock led */ - ret = af9013_lock_led(state, 1); - if (ret) - goto error; - -error: - return ret; -} - -static struct dvb_frontend_ops af9013_ops; - -static int af9013_download_firmware(struct af9013_state *state) -{ - int i, len, packets, remainder, ret; - const struct firmware *fw; - u16 addr = 0x5100; /* firmware start address */ - u16 checksum = 0; - u8 val; - u8 fw_params[4]; - u8 *data; - u8 *fw_file = AF9013_DEFAULT_FIRMWARE; - - msleep(100); - /* check whether firmware is already running */ - ret = af9013_read_reg(state, 0x98be, &val;); - if (ret) - goto error; - else - deb_info("%s: firmware status:%02x\n", __func__, val); - - if (val == 0x0c) /* fw is running, no need for download */ - goto exit; - - info("found a '%s' in cold state, will try to load a firmware", - af9013_ops.info.name); - - /* request the firmware, this will block and timeout */ - ret = request_firmware(&fw;, fw_file, state->i2c->dev.parent); - if (ret) { - err("did not find the firmware file. (%s) " - "Please see linux/Documentation/dvb/ for more details" \ - " on firmware-problems. (%d)", - fw_file, ret); - goto error; - } - - info("downloading firmware from file '%s'", fw_file); - - /* calc checksum */ - for (i = 0; i < fw->size; i++) - checksum += fw->data[i]; - - fw_params[0] = checksum >> 8; - fw_params[1] = checksum & 0xff; - fw_params[2] = fw->size >> 8; - fw_params[3] = fw->size & 0xff; - - /* write fw checksum & size */ - ret = af9013_write_ofsm_regs(state, 0x50fc, - fw_params, sizeof(fw_params)); - if (ret) - goto error_release; - - #define FW_PACKET_MAX_DATA 16 - - packets = fw->size / FW_PACKET_MAX_DATA; - remainder = fw->size % FW_PACKET_MAX_DATA; - len = FW_PACKET_MAX_DATA; - for (i = 0; i <= packets; i++) { - if (i == packets) /* set size of the last packet */ - len = remainder; - - data = (u8 *)(fw->data + i * FW_PACKET_MAX_DATA); - ret = af9013_write_ofsm_regs(state, addr, data, len); - addr += FW_PACKET_MAX_DATA; - - if (ret) { - err("firmware download failed at %d with %d", i, ret); - goto error_release; - } - } - - /* request boot firmware */ - ret = af9013_write_reg(state, 0xe205, 1); - if (ret) - goto error_release; - - for (i = 0; i < 15; i++) { - msleep(100); - - /* check firmware status */ - ret = af9013_read_reg(state, 0x98be, &val;); - if (ret) - goto error_release; - - deb_info("%s: firmware status:%02x\n", __func__, val); - - if (val == 0x0c || val == 0x04) /* success or fail */ - break; - } - - if (val == 0x04) { - err("firmware did not run"); - ret = -1; - } else if (val != 0x0c) { - err("firmware boot timeout"); - ret = -1; - } - -error_release: - release_firmware(fw); -error: -exit: - if (!ret) - info("found a '%s' in warm state.", af9013_ops.info.name); - return ret; -} - -static int af9013_i2c_gate_ctrl(struct dvb_frontend *fe, int enable) -{ - int ret; - struct af9013_state *state = fe->demodulator_priv; - deb_info("%s: enable:%d\n", __func__, enable); - - if (state->config.output_mode == AF9013_OUTPUT_MODE_USB) - ret = af9013_write_reg_bits(state, 0xd417, 3, 1, enable); - else - ret = af9013_write_reg_bits(state, 0xd607, 2, 1, enable); - - return ret; -} - -static void af9013_release(struct dvb_frontend *fe) -{ - struct af9013_state *state = fe->demodulator_priv; - kfree(state); -} - -static struct dvb_frontend_ops af9013_ops; - -struct dvb_frontend *af9013_attach(const struct af9013_config *config, - struct i2c_adapter *i2c) -{ - int ret; - struct af9013_state *state = NULL; - u8 buf[3], i; - - /* allocate memory for the internal state */ - state = kzalloc(sizeof(struct af9013_state), GFP_KERNEL); - if (state == NULL) - goto error; - - /* setup the state */ - state->i2c = i2c; - memcpy(&state-;>config, config, sizeof(struct af9013_config)); - - /* chip version */ - ret = af9013_read_reg_bits(state, 0xd733, 4, 4, &buf;[2]); - if (ret) - goto error; - - /* ROM version */ - for (i = 0; i < 2; i++) { - ret = af9013_read_reg(state, 0x116b + i, &buf;[i]); - if (ret) - goto error; - } - deb_info("%s: chip version:%d ROM version:%d.%d\n", __func__, - buf[2], buf[0], buf[1]); - - /* download firmware */ - if (state->config.output_mode != AF9013_OUTPUT_MODE_USB) { - ret = af9013_download_firmware(state); - if (ret) - goto error; - } - - /* firmware version */ - for (i = 0; i < 3; i++) { - ret = af9013_read_reg(state, 0x5103 + i, &buf;[i]); - if (ret) - goto error; - } - info("firmware version:%d.%d.%d", buf[0], buf[1], buf[2]); - - /* settings for mp2if */ - if (state->config.output_mode == AF9013_OUTPUT_MODE_USB) { - /* AF9015 split PSB to 1.5k + 0.5k */ - ret = af9013_write_reg_bits(state, 0xd50b, 2, 1, 1); - } else { - /* AF9013 change the output bit to data7 */ - ret = af9013_write_reg_bits(state, 0xd500, 3, 1, 1); - if (ret) - goto error; - /* AF9013 set mpeg to full speed */ - ret = af9013_write_reg_bits(state, 0xd502, 4, 1, 1); - } - if (ret) - goto error; - ret = af9013_write_reg_bits(state, 0xd520, 4, 1, 1); - if (ret) - goto error; - - /* set GPIOs */ - for (i = 0; i < sizeof(state->config.gpio); i++) { - ret = af9013_set_gpio(state, i, state->config.gpio[i]); - if (ret) - goto error; - } - - /* create dvb_frontend */ - memcpy(&state-;>frontend.ops, &af9013;_ops, - sizeof(struct dvb_frontend_ops)); - state->frontend.demodulator_priv = state; - - return &state-;>frontend; -error: - kfree(state); - return NULL; -} -EXPORT_SYMBOL(af9013_attach); - -static struct dvb_frontend_ops af9013_ops = { - .info = { - .name = "Afatech AF9013 DVB-T", - .type = FE_OFDM, - .frequency_min = 174000000, - .frequency_max = 862000000, - .frequency_stepsize = 250000, - .frequency_tolerance = 0, - .caps = - FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | - FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | - FE_CAN_QPSK | FE_CAN_QAM_16 | - FE_CAN_QAM_64 | FE_CAN_QAM_AUTO | - FE_CAN_TRANSMISSION_MODE_AUTO | - FE_CAN_GUARD_INTERVAL_AUTO | - FE_CAN_HIERARCHY_AUTO | - FE_CAN_RECOVER | - FE_CAN_MUTE_TS - }, - - .release = af9013_release, - .init = af9013_init, - .sleep = af9013_sleep, - .i2c_gate_ctrl = af9013_i2c_gate_ctrl, - - .set_frontend = af9013_set_frontend, - .get_frontend = af9013_get_frontend, - - .get_tune_settings = af9013_get_tune_settings, - - .read_status = af9013_read_status, - .read_ber = af9013_read_ber, - .read_signal_strength = af9013_read_signal_strength, - .read_snr = af9013_read_snr, - .read_ucblocks = af9013_read_ucblocks, -}; - -module_param_named(debug, af9013_debug, int, 0644); -MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); - -MODULE_AUTHOR("Antti Palosaari "); -MODULE_DESCRIPTION("Afatech AF9013 DVB-T demodulator driver"); -MODULE_LICENSE("GPL");
-#endif /* _AF9013_PRIV_ */
--- a/dvb/af9013.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * DVB USB Linux driver for Afatech AF9015 DVB-T USB2.0 receiver - * - * Copyright (C) 2007 Antti Palosaari - * - * Thanks to Afatech who kindly provided information. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef _AF9013_H_ -#define _AF9013_H_ - -#include dvbfrontend.h> - -enum af9013_ts_mode { - AF9013_OUTPUT_MODE_PARALLEL, - AF9013_OUTPUT_MODE_SERIAL, - AF9013_OUTPUT_MODE_USB, /* only for AF9015 */ -}; - -enum af9013_tuner { - AF9013_TUNER_MXL5003D = 3, /* MaxLinear */ - AF9013_TUNER_MXL5005D = 13, /* MaxLinear */ - AF9013_TUNER_MXL5005R = 30, /* MaxLinear */ - AF9013_TUNER_ENV77H11D5 = 129, /* Panasonic */ - AF9013_TUNER_MT2060 = 130, /* Microtune */ - AF9013_TUNER_MC44S803 = 133, /* Freescale */ - AF9013_TUNER_QT1010 = 134, /* Quantek */ - AF9013_TUNER_UNKNOWN = 140, /* for can tuners ? */ - AF9013_TUNER_MT2060_2 = 147, /* Microtune */ - AF9013_TUNER_TDA18271 = 156, /* NXP */ - AF9013_TUNER_QT1010A = 162, /* Quantek */ - AF9013_TUNER_TDA18218 = 179, /* NXP */ -}; - -/* AF9013/5 GPIOs (mostly guessed) - demod#1-gpio#0 - set demod#2 i2c-addr for dual devices - demod#1-gpio#1 - xtal setting (?) - demod#1-gpio#3 - tuner#1 - demod#2-gpio#0 - tuner#2 - demod#2-gpio#1 - xtal setting (?) -*/ -#define AF9013_GPIO_ON (1 << 0) -#define AF9013_GPIO_EN (1 << 1) -#define AF9013_GPIO_O (1 << 2) -#define AF9013_GPIO_I (1 << 3) - -#define AF9013_GPIO_LO (AF9013_GPIO_ON|AF9013_GPIO_EN) -#define AF9013_GPIO_HI (AF9013_GPIO_ON|AF9013_GPIO_EN|AF9013_GPIO_O) - -#define AF9013_GPIO_TUNER_ON (AF9013_GPIO_ON|AF9013_GPIO_EN) -#define AF9013_GPIO_TUNER_OFF (AF9013_GPIO_ON|AF9013_GPIO_EN|AF9013_GPIO_O) - -struct af9013_config { - /* demodulator's I2C address */ - u8 demod_address; - - /* frequencies in kHz */ - u32 adc_clock; - - /* tuner ID */ - u8 tuner; - - /* tuner IF */ - u16 tuner_if; - - /* TS data output mode */ - u8 output_mode:2; - - /* RF spectrum inversion */ - u8 rf_spec_inv:1; - - /* API version */ - u8 api_version[4]; - - /* GPIOs */ - u8 gpio[4]; -}; - - -#if defined(CONFIG_DVB_AF9013) || \ - (defined(CONFIG_DVB_AF9013_MODULE) && defined(MODULE)) -extern struct dvb_frontend *af9013_attach(const struct af9013_config *config, - struct i2c_adapter *i2c); -#else -static inline struct dvb_frontend *af9013_attach( -const struct af9013_config *config, struct i2c_adapter *i2c) -{ - printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); - return NULL; -} -#endif /* CONFIG_DVB_AF9013 */ - -#endif /* _AF9013_H_ */
--- a/dvb/af9013_priv.h +++ /dev/null @@ -1,869 +0,0 @@ -/* - * DVB USB Linux driver for Afatech AF9015 DVB-T USB2.0 receiver - * - * Copyright (C) 2007 Antti Palosaari - * - * Thanks to Afatech who kindly provided information. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef _AF9013_PRIV_ -#define _AF9013_PRIV_ - -#define LOG_PREFIX "af9013" -extern int af9013_debug; - -#define dprintk(var, level, args...) \ - do { if ((var & level)) printk(args); } while (0) - -#define debug_dump(b, l, func) {\ - int loop_; \ - for (loop_ = 0; loop_ < l; loop_++) \ - func("%02x ", b[loop_]); \ - func("\n");\ -} - -#define deb_info(args...) dprintk(af9013_debug, 0x01, args) - -#undef err -#define err(f, arg...) printk(KERN_ERR LOG_PREFIX": " f "\n" , ## arg) -#undef info -#define info(f, arg...) printk(KERN_INFO LOG_PREFIX": " f "\n" , ## arg) -#undef warn -#define warn(f, arg...) printk(KERN_WARNING LOG_PREFIX": " f "\n" , ## arg) - -#define AF9013_DEFAULT_FIRMWARE "dvb-fe-af9013.fw" - -struct regdesc { - u16 addr; - u8 pos:4; - u8 len:4; - u8 val; -}; - -struct snr_table { - u32 val; - u8 snr; -}; - -/* QPSK SNR lookup table */ -static struct snr_table qpsk_snr_table[] = { - { 0x0b4771, 0 }, - { 0x0c1aed, 1 }, - { 0x0d0d27, 2 }, - { 0x0e4d19, 3 }, - { 0x0e5da8, 4 }, - { 0x107097, 5 }, - { 0x116975, 6 }, - { 0x1252d9, 7 }, - { 0x131fa4, 8 }, - { 0x13d5e1, 9 }, - { 0x148e53, 10 }, - { 0x15358b, 11 }, - { 0x15dd29, 12 }, - { 0x168112, 13 }, - { 0x170b61, 14 }, - { 0xffffff, 15 }, -}; - -/* QAM16 SNR lookup table */ -static struct snr_table qam16_snr_table[] = { - { 0x05eb62, 5 }, - { 0x05fecf, 6 }, - { 0x060b80, 7 }, - { 0x062501, 8 }, - { 0x064865, 9 }, - { 0x069604, 10 }, - { 0x06f356, 11 }, - { 0x07706a, 12 }, - { 0x0804d3, 13 }, - { 0x089d1a, 14 }, - { 0x093e3d, 15 }, - { 0x09e35d, 16 }, - { 0x0a7c3c, 17 }, - { 0x0afaf8, 18 }, - { 0x0b719d, 19 }, - { 0xffffff, 20 }, -}; - -/* QAM64 SNR lookup table */ -static struct snr_table qam64_snr_table[] = { - { 0x03109b, 12 }, - { 0x0310d4, 13 }, - { 0x031920, 14 }, - { 0x0322d0, 15 }, - { 0x0339fc, 16 }, - { 0x0364a1, 17 }, - { 0x038bcc, 18 }, - { 0x03c7d3, 19 }, - { 0x0408cc, 20 }, - { 0x043bed, 21 }, - { 0x048061, 22 }, - { 0x04be95, 23 }, - { 0x04fa7d, 24 }, - { 0x052405, 25 }, - { 0x05570d, 26 }, - { 0xffffff, 27 }, -}; - -static struct regdesc ofsm_init[] = { - { 0xd73a, 0, 8, 0xa1 }, - { 0xd73b, 0, 8, 0x1f }, - { 0xd73c, 4, 4, 0x0a }, - { 0xd732, 3, 1, 0x00 }, - { 0xd731, 4, 2, 0x03 }, - { 0xd73d, 7, 1, 0x01 }, - { 0xd740, 0, 1, 0x00 }, - { 0xd740, 1, 1, 0x00 }, - { 0xd740, 2, 1, 0x00 }, - { 0xd740, 3, 1, 0x01 }, - { 0xd3c1, 4, 1, 0x01 }, - { 0xd3a2, 0, 8, 0x00 }, - { 0xd3a3, 0, 8, 0x04 }, - { 0xd305, 0, 8, 0x32 }, - { 0xd306, 0, 8, 0x10 }, - { 0xd304, 0, 8, 0x04 }, - { 0x9112, 0, 1, 0x01 }, - { 0x911d, 0, 1, 0x01 }, - { 0x911a, 0, 1, 0x01 }, - { 0x911b, 0, 1, 0x01 }, - { 0x9bce, 0, 4, 0x02 }, - { 0x9116, 0, 1, 0x01 }, - { 0x9bd1, 0, 1, 0x01 }, - { 0xd2e0, 0, 8, 0xd0 }, - { 0xd2e9, 0, 4, 0x0d }, - { 0xd38c, 0, 8, 0xfc }, - { 0xd38d, 0, 8, 0x00 }, - { 0xd38e, 0, 8, 0x7e }, - { 0xd38f, 0, 8, 0x00 }, - { 0xd390, 0, 8, 0x2f }, - { 0xd145, 4, 1, 0x01 }, - { 0xd1a9, 4, 1, 0x01 }, - { 0xd158, 5, 3, 0x01 }, - { 0xd159, 0, 6, 0x06 }, - { 0xd167, 0, 8, 0x00 }, - { 0xd168, 0, 4, 0x07 }, - { 0xd1c3, 5, 3, 0x00 }, - { 0xd1c4, 0, 6, 0x00 }, - { 0xd1c5, 0, 7, 0x10 }, - { 0xd1c6, 0, 3, 0x02 }, - { 0xd080, 2, 5, 0x03 }, - { 0xd081, 4, 4, 0x09 }, - { 0xd098, 4, 4, 0x0f }, - { 0xd098, 0, 4, 0x03 }, - { 0xdbc0, 3, 1, 0x01 }, - { 0xdbc0, 4, 1, 0x01 }, - { 0xdbc7, 0, 8, 0x08 }, - { 0xdbc8, 4, 4, 0x00 }, - { 0xdbc9, 0, 5, 0x01 }, - { 0xd280, 0, 8, 0xe0 }, - { 0xd281, 0, 8, 0xff }, - { 0xd282, 0, 8, 0xff }, - { 0xd283, 0, 8, 0xc3 }, - { 0xd284, 0, 8, 0xff }, - { 0xd285, 0, 4, 0x01 }, - { 0xd0f0, 0, 7, 0x1a }, - { 0xd0f1, 4, 1, 0x01 }, - { 0xd0f2, 0, 8, 0x0c }, - { 0xd103, 0, 4, 0x08 }, - { 0xd0f8, 0, 7, 0x20 }, - { 0xd111, 5, 1, 0x00 }, - { 0xd111, 6, 1, 0x00 }, - { 0x910b, 0, 8, 0x0a }, - { 0x9115, 0, 8, 0x02 }, - { 0x910c, 0, 8, 0x02 }, - { 0x910d, 0, 8, 0x08 }, - { 0x910e, 0, 8, 0x0a }, - { 0x9bf6, 0, 8, 0x06 }, - { 0x9bf8, 0, 8, 0x02 }, - { 0x9bf7, 0, 8, 0x05 }, - { 0x9bf9, 0, 8, 0x0f }, - { 0x9bfc, 0, 8, 0x13 }, - { 0x9bd3, 0, 8, 0xff }, - { 0x9bbe, 0, 1, 0x01 }, - { 0x9bcc, 0, 1, 0x01 }, -}; - -/* Panasonic ENV77H11D5 tuner init - AF9013_TUNER_ENV77H11D5 = 129 */ -static struct regdesc tuner_init_env77h11d5[] = { - { 0x9bd5, 0, 8, 0x01 }, - { 0x9bd6, 0, 8, 0x03 }, - { 0x9bbe, 0, 8, 0x01 }, - { 0xd1a0, 1, 1, 0x01 }, - { 0xd000, 0, 1, 0x01 }, - { 0xd000, 1, 1, 0x00 }, - { 0xd001, 1, 1, 0x01 }, - { 0xd001, 0, 1, 0x00 }, - { 0xd001, 5, 1, 0x00 }, - { 0xd002, 0, 5, 0x19 }, - { 0xd003, 0, 5, 0x1a }, - { 0xd004, 0, 5, 0x19 }, - { 0xd005, 0, 5, 0x1a }, - { 0xd00e, 0, 5, 0x10 }, - { 0xd00f, 0, 3, 0x04 }, - { 0xd00f, 3, 3, 0x05 }, - { 0xd010, 0, 3, 0x04 }, - { 0xd010, 3, 3, 0x05 }, - { 0xd016, 4, 4, 0x03 }, - { 0xd01f, 0, 6, 0x0a }, - { 0xd020, 0, 6, 0x0a }, - { 0x9bda, 0, 8, 0x00 }, - { 0x9be3, 0, 8, 0x00 }, - { 0xd015, 0, 8, 0x50 }, - { 0xd016, 0, 1, 0x00 }, - { 0xd044, 0, 8, 0x46 }, - { 0xd045, 0, 1, 0x00 }, - { 0xd008, 0, 8, 0xdf }, - { 0xd009, 0, 2, 0x02 }, - { 0xd006, 0, 8, 0x44 }, - { 0xd007, 0, 2, 0x01 }, - { 0xd00c, 0, 8, 0xeb }, - { 0xd00d, 0, 2, 0x02 }, - { 0xd00a, 0, 8, 0xf4 }, - { 0xd00b, 0, 2, 0x01 }, - { 0x9bba, 0, 8, 0xf9 }, - { 0x9bc3, 0, 8, 0xdf }, - { 0x9bc4, 0, 8, 0x02 }, - { 0x9bc5, 0, 8, 0xeb }, - { 0x9bc6, 0, 8, 0x02 }, - { 0x9bc9, 0, 8, 0x52 }, - { 0xd011, 0, 8, 0x3c }, - { 0xd012, 0, 2, 0x01 }, - { 0xd013, 0, 8, 0xf7 }, - { 0xd014, 0, 2, 0x02 }, - { 0xd040, 0, 8, 0x0b }, - { 0xd041, 0, 2, 0x02 }, - { 0xd042, 0, 8, 0x4d }, - { 0xd043, 0, 2, 0x00 }, - { 0xd045, 1, 1, 0x00 }, - { 0x9bcf, 0, 1, 0x01 }, - { 0xd045, 2, 1, 0x01 }, - { 0xd04f, 0, 8, 0x9a }, - { 0xd050, 0, 1, 0x01 }, - { 0xd051, 0, 8, 0x5a }, - { 0xd052, 0, 1, 0x01 }, - { 0xd053, 0, 8, 0x50 }, - { 0xd054, 0, 8, 0x46 }, - { 0x9bd7, 0, 8, 0x0a }, - { 0x9bd8, 0, 8, 0x14 }, - { 0x9bd9, 0, 8, 0x08 }, -}; - -/* Microtune MT2060 tuner init - AF9013_TUNER_MT2060 = 130 */ -static struct regdesc tuner_init_mt2060[] = { - { 0x9bd5, 0, 8, 0x01 }, - { 0x9bd6, 0, 8, 0x07 }, - { 0xd1a0, 1, 1, 0x01 }, - { 0xd000, 0, 1, 0x01 }, - { 0xd000, 1, 1, 0x00 }, - { 0xd001, 1, 1, 0x01 }, - { 0xd001, 0, 1, 0x00 }, - { 0xd001, 5, 1, 0x00 }, - { 0xd002, 0, 5, 0x19 }, - { 0xd003, 0, 5, 0x1a }, - { 0xd004, 0, 5, 0x19 }, - { 0xd005, 0, 5, 0x1a }, - { 0xd00e, 0, 5, 0x10 }, - { 0xd00f, 0, 3, 0x04 }, - { 0xd00f, 3, 3, 0x05 }, - { 0xd010, 0, 3, 0x04 }, - { 0xd010, 3, 3, 0x05 }, - { 0xd016, 4, 4, 0x03 }, - { 0xd01f, 0, 6, 0x0a }, - { 0xd020, 0, 6, 0x0a }, - { 0x9bda, 0, 8, 0x00 }, - { 0x9be3, 0, 8, 0x00 }, - { 0x9bbe, 0, 1, 0x00 }, - { 0x9bcc, 0, 1, 0x00 }, - { 0x9bb9, 0, 8, 0x75 }, - { 0x9bcd, 0, 8, 0x24 }, - { 0x9bff, 0, 8, 0x30 }, - { 0xd015, 0, 8, 0x46 }, - { 0xd016, 0, 1, 0x00 }, - { 0xd044, 0, 8, 0x46 }, - { 0xd045, 0, 1, 0x00 }, - { 0xd008, 0, 8, 0x0f }, - { 0xd009, 0, 2, 0x02 }, - { 0xd006, 0, 8, 0x32 }, - { 0xd007, 0, 2, 0x01 }, - { 0xd00c, 0, 8, 0x36 }, - { 0xd00d, 0, 2, 0x03 }, - { 0xd00a, 0, 8, 0x35 }, - { 0xd00b, 0, 2, 0x01 }, - { 0x9bc7, 0, 8, 0x07 }, - { 0x9bc8, 0, 8, 0x90 }, - { 0x9bc3, 0, 8, 0x0f }, - { 0x9bc4, 0, 8, 0x02 }, - { 0x9bc5, 0, 8, 0x36 }, - { 0x9bc6, 0, 8, 0x03 }, - { 0x9bba, 0, 8, 0xc9 }, - { 0x9bc9, 0, 8, 0x79 }, - { 0xd011, 0, 8, 0x10 }, - { 0xd012, 0, 2, 0x01 }, - { 0xd013, 0, 8, 0x45 }, - { 0xd014, 0, 2, 0x03 }, - { 0xd040, 0, 8, 0x98 }, - { 0xd041, 0, 2, 0x00 }, - { 0xd042, 0, 8, 0xcf }, - { 0xd043, 0, 2, 0x03 }, - { 0xd045, 1, 1, 0x00 }, - { 0x9bcf, 0, 1, 0x01 }, - { 0xd045, 2, 1, 0x01 }, - { 0xd04f, 0, 8, 0x9a }, - { 0xd050, 0, 1, 0x01 }, - { 0xd051, 0, 8, 0x5a }, - { 0xd052, 0, 1, 0x01 }, - { 0xd053, 0, 8, 0x50 }, - { 0xd054, 0, 8, 0x46 }, - { 0x9bd7, 0, 8, 0x0a }, - { 0x9bd8, 0, 8, 0x14 }, - { 0x9bd9, 0, 8, 0x08 }, - { 0x9bd0, 0, 8, 0xcc }, - { 0x9be4, 0, 8, 0xa0 }, - { 0x9bbd, 0, 8, 0x8e }, - { 0x9be2, 0, 8, 0x4d }, - { 0x9bee, 0, 1, 0x01 }, -}; - -/* Microtune MT2060 tuner init - AF9013_TUNER_MT2060_2 = 147 */ -static struct regdesc tuner_init_mt2060_2[] = { - { 0x9bd5, 0, 8, 0x01 }, - { 0x9bd6, 0, 8, 0x06 }, - { 0x9bbe, 0, 8, 0x01 }, - { 0xd1a0, 1, 1, 0x01 }, - { 0xd000, 0, 1, 0x01 }, - { 0xd000, 1, 1, 0x00 }, - { 0xd001, 1, 1, 0x01 }, - { 0xd001, 0, 1, 0x00 }, - { 0xd001, 5, 1, 0x00 }, - { 0xd002, 0, 5, 0x19 }, - { 0xd003, 0, 5, 0x1a }, - { 0xd004, 0, 5, 0x19 }, - { 0xd005, 0, 5, 0x1a }, - { 0xd00e, 0, 5, 0x10 }, - { 0xd00f, 0, 3, 0x04 }, - { 0xd00f, 3, 3, 0x05 }, - { 0xd010, 0, 3, 0x04 }, - { 0xd010, 3, 3, 0x05 }, - { 0xd016, 4, 4, 0x03 }, - { 0xd01f, 0, 6, 0x0a }, - { 0xd020, 0, 6, 0x0a }, - { 0xd015, 0, 8, 0x46 }, - { 0xd016, 0, 1, 0x00 }, - { 0xd044, 0, 8, 0x46 }, - { 0xd045, 0, 1, 0x00 }, - { 0xd008, 0, 8, 0x0f }, - { 0xd009, 0, 2, 0x02 }, - { 0xd006, 0, 8, 0x32 }, - { 0xd007, 0, 2, 0x01 }, - { 0xd00c, 0, 8, 0x36 }, - { 0xd00d, 0, 2, 0x03 }, - { 0xd00a, 0, 8, 0x35 }, - { 0xd00b, 0, 2, 0x01 }, - { 0x9bc7, 0, 8, 0x07 }, - { 0x9bc8, 0, 8, 0x90 }, - { 0x9bc3, 0, 8, 0x0f }, - { 0x9bc4, 0, 8, 0x02 }, - { 0x9bc5, 0, 8, 0x36 }, - { 0x9bc6, 0, 8, 0x03 }, - { 0x9bba, 0, 8, 0xc9 }, - { 0x9bc9, 0, 8, 0x79 }, - { 0xd011, 0, 8, 0x10 }, - { 0xd012, 0, 2, 0x01 }, - { 0xd013, 0, 8, 0x45 }, - { 0xd014, 0, 2, 0x03 }, - { 0xd040, 0, 8, 0x98 }, - { 0xd041, 0, 2, 0x00 }, - { 0xd042, 0, 8, 0xcf }, - { 0xd043, 0, 2, 0x03 }, - { 0xd045, 1, 1, 0x00 }, - { 0x9bcf, 0, 8, 0x01 }, - { 0xd045, 2, 1, 0x01 }, - { 0xd04f, 0, 8, 0x9a }, - { 0xd050, 0, 1, 0x01 }, - { 0xd051, 0, 8, 0x5a }, - { 0xd052, 0, 1, 0x01 }, - { 0xd053, 0, 8, 0x96 }, - { 0xd054, 0, 8, 0x46 }, - { 0xd045, 7, 1, 0x00 }, - { 0x9bd7, 0, 8, 0x0a }, - { 0x9bd8, 0, 8, 0x14 }, - { 0x9bd9, 0, 8, 0x08 }, -}; - -/* MaxLinear MXL5003 tuner init - AF9013_TUNER_MXL5003D = 3 */ -static struct regdesc tuner_init_mxl5003d[] = { - { 0x9bd5, 0, 8, 0x01 }, - { 0x9bd6, 0, 8, 0x09 }, - { 0xd1a0, 1, 1, 0x01 }, - { 0xd000, 0, 1, 0x01 }, - { 0xd000, 1, 1, 0x00 }, - { 0xd001, 1, 1, 0x01 }, - { 0xd001, 0, 1, 0x00 }, - { 0xd001, 5, 1, 0x00 }, - { 0xd002, 0, 5, 0x19 }, - { 0xd003, 0, 5, 0x1a }, - { 0xd004, 0, 5, 0x19 }, - { 0xd005, 0, 5, 0x1a }, - { 0xd00e, 0, 5, 0x10 }, - { 0xd00f, 0, 3, 0x04 }, - { 0xd00f, 3, 3, 0x05 }, - { 0xd010, 0, 3, 0x04 }, - { 0xd010, 3, 3, 0x05 }, - { 0xd016, 4, 4, 0x03 }, - { 0xd01f, 0, 6, 0x0a }, - { 0xd020, 0, 6, 0x0a }, - { 0x9bda, 0, 8, 0x00 }, - { 0x9be3, 0, 8, 0x00 }, - { 0x9bfc, 0, 8, 0x0f }, - { 0x9bf6, 0, 8, 0x01 }, - { 0x9bbe, 0, 1, 0x01 }, - { 0xd015, 0, 8, 0x33 }, - { 0xd016, 0, 1, 0x00 }, - { 0xd044, 0, 8, 0x40 }, - { 0xd045, 0, 1, 0x00 }, - { 0xd008, 0, 8, 0x0f }, - { 0xd009, 0, 2, 0x02 }, - { 0xd006, 0, 8, 0x6c }, - { 0xd007, 0, 2, 0x00 }, - { 0xd00c, 0, 8, 0x3d }, - { 0xd00d, 0, 2, 0x00 }, - { 0xd00a, 0, 8, 0x45 }, - { 0xd00b, 0, 2, 0x01 }, - { 0x9bc7, 0, 8, 0x07 }, - { 0x9bc8, 0, 8, 0x52 }, - { 0x9bc3, 0, 8, 0x0f }, - { 0x9bc4, 0, 8, 0x02 }, - { 0x9bc5, 0, 8, 0x3d }, - { 0x9bc6, 0, 8, 0x00 }, - { 0x9bba, 0, 8, 0xa2 }, - { 0x9bc9, 0, 8, 0xa0 }, - { 0xd011, 0, 8, 0x56 }, - { 0xd012, 0, 2, 0x00 }, - { 0xd013, 0, 8, 0x50 }, - { 0xd014, 0, 2, 0x00 }, - { 0xd040, 0, 8, 0x56 }, - { 0xd041, 0, 2, 0x00 }, - { 0xd042, 0, 8, 0x50 }, - { 0xd043, 0, 2, 0x00 }, - { 0xd045, 1, 1, 0x00 }, - { 0x9bcf, 0, 8, 0x01 }, - { 0xd045, 2, 1, 0x01 }, - { 0xd04f, 0, 8, 0x9a }, - { 0xd050, 0, 1, 0x01 }, - { 0xd051, 0, 8, 0x5a }, - { 0xd052, 0, 1, 0x01 }, - { 0xd053, 0, 8, 0x50 }, - { 0xd054, 0, 8, 0x46 }, - { 0x9bd7, 0, 8, 0x0a }, - { 0x9bd8, 0, 8, 0x14 }, - { 0x9bd9, 0, 8, 0x08 }, -}; - -/* MaxLinear MXL5005 tuner init - AF9013_TUNER_MXL5005D = 13 - AF9013_TUNER_MXL5005R = 30 */ -static struct regdesc tuner_init_mxl5005[] = { - { 0x9bd5, 0, 8, 0x01 }, - { 0x9bd6, 0, 8, 0x07 }, - { 0xd1a0, 1, 1, 0x01 }, - { 0xd000, 0, 1, 0x01 }, - { 0xd000, 1, 1, 0x00 }, - { 0xd001, 1, 1, 0x01 }, - { 0xd001, 0, 1, 0x00 }, - { 0xd001, 5, 1, 0x00 }, - { 0xd002, 0, 5, 0x19 }, - { 0xd003, 0, 5, 0x1a }, - { 0xd004, 0, 5, 0x19 }, - { 0xd005, 0, 5, 0x1a }, - { 0xd00e, 0, 5, 0x10 }, - { 0xd00f, 0, 3, 0x04 }, - { 0xd00f, 3, 3, 0x05 }, - { 0xd010, 0, 3, 0x04 }, - { 0xd010, 3, 3, 0x05 }, - { 0xd016, 4, 4, 0x03 }, - { 0xd01f, 0, 6, 0x0a }, - { 0xd020, 0, 6, 0x0a }, - { 0x9bda, 0, 8, 0x01 }, - { 0x9be3, 0, 8, 0x01 }, - { 0x9bbe, 0, 1, 0x01 }, - { 0x9bcc, 0, 1, 0x01 }, - { 0x9bb9, 0, 8, 0x00 }, - { 0x9bcd, 0, 8, 0x28 }, - { 0x9bff, 0, 8, 0x24 }, - { 0xd015, 0, 8, 0x40 }, - { 0xd016, 0, 1, 0x00 }, - { 0xd044, 0, 8, 0x40 }, - { 0xd045, 0, 1, 0x00 }, - { 0xd008, 0, 8, 0x0f }, - { 0xd009, 0, 2, 0x02 }, - { 0xd006, 0, 8, 0x73 }, - { 0xd007, 0, 2, 0x01 }, - { 0xd00c, 0, 8, 0xfa }, - { 0xd00d, 0, 2, 0x01 }, - { 0xd00a, 0, 8, 0xff }, - { 0xd00b, 0, 2, 0x01 }, - { 0x9bc7, 0, 8, 0x23 }, - { 0x9bc8, 0, 8, 0x55 }, - { 0x9bc3, 0, 8, 0x01 }, - { 0x9bc4, 0, 8, 0x02 }, - { 0x9bc5, 0, 8, 0xfa }, - { 0x9bc6, 0, 8, 0x01 }, - { 0x9bba, 0, 8, 0xff }, - { 0x9bc9, 0, 8, 0xff }, - { 0x9bd3, 0, 8, 0x95 }, - { 0xd011, 0, 8, 0x70 }, - { 0xd012, 0, 2, 0x01 }, - { 0xd013, 0, 8, 0xfb }, - { 0xd014, 0, 2, 0x01 }, - { 0xd040, 0, 8, 0x70 }, - { 0xd041, 0, 2, 0x01 }, - { 0xd042, 0, 8, 0xfb }, - { 0xd043, 0, 2, 0x01 }, - { 0xd045, 1, 1, 0x00 }, - { 0x9bcf, 0, 1, 0x01 }, - { 0xd045, 2, 1, 0x01 }, - { 0xd04f, 0, 8, 0x9a }, - { 0xd050, 0, 1, 0x01 }, - { 0xd051, 0, 8, 0x5a }, - { 0xd052, 0, 1, 0x01 }, - { 0xd053, 0, 8, 0x50 }, - { 0xd054, 0, 8, 0x46 }, - { 0x9bd7, 0, 8, 0x0a }, - { 0x9bd8, 0, 8, 0x14 }, - { 0x9bd9, 0, 8, 0x08 }, - { 0x9bd0, 0, 8, 0x93 }, - { 0x9be4, 0, 8, 0xfe }, - { 0x9bbd, 0, 8, 0x63 }, - { 0x9be2, 0, 8, 0xfe }, - { 0x9bee, 0, 1, 0x01 }, -}; - -/* Quantek QT1010 tuner init - AF9013_TUNER_QT1010 = 134 - AF9013_TUNER_QT1010A = 162 */ -static struct regdesc tuner_init_qt1010[] = { - { 0x9bd5, 0, 8, 0x01 }, - { 0x9bd6, 0, 8, 0x09 }, - { 0xd1a0, 1, 1, 0x01 }, - { 0xd000, 0, 1, 0x01 }, - { 0xd000, 1, 1, 0x00 }, - { 0xd001, 1, 1, 0x01 }, - { 0xd001, 0, 1, 0x00 }, - { 0xd001, 5, 1, 0x00 }, - { 0xd002, 0, 5, 0x19 }, - { 0xd003, 0, 5, 0x1a }, - { 0xd004, 0, 5, 0x19 }, - { 0xd005, 0, 5, 0x1a }, - { 0xd00e, 0, 5, 0x10 }, - { 0xd00f, 0, 3, 0x04 }, - { 0xd00f, 3, 3, 0x05 }, - { 0xd010, 0, 3, 0x04 }, - { 0xd010, 3, 3, 0x05 }, - { 0xd016, 4, 4, 0x03 }, - { 0xd01f, 0, 6, 0x0a }, - { 0xd020, 0, 6, 0x0a }, - { 0x9bda, 0, 8, 0x01 }, - { 0x9be3, 0, 8, 0x01 }, - { 0xd015, 0, 8, 0x46 }, - { 0xd016, 0, 1, 0x00 }, - { 0xd044, 0, 8, 0x46 }, - { 0xd045, 0, 1, 0x00 }, - { 0x9bbe, 0, 1, 0x01 }, - { 0x9bcc, 0, 1, 0x01 }, - { 0x9bb9, 0, 8, 0x00 }, - { 0x9bcd, 0, 8, 0x28 }, - { 0x9bff, 0, 8, 0x20 }, - { 0xd008, 0, 8, 0x0f }, - { 0xd009, 0, 2, 0x02 }, - { 0xd006, 0, 8, 0x99 }, - { 0xd007, 0, 2, 0x01 }, - { 0xd00c, 0, 8, 0x0f }, - { 0xd00d, 0, 2, 0x02 }, - { 0xd00a, 0, 8, 0x50 }, - { 0xd00b, 0, 2, 0x01 }, - { 0x9bc7, 0, 8, 0x00 }, - { 0x9bc8, 0, 8, 0x00 }, - { 0x9bc3, 0, 8, 0x0f }, - { 0x9bc4, 0, 8, 0x02 }, - { 0x9bc5, 0, 8, 0x0f }, - { 0x9bc6, 0, 8, 0x02 }, - { 0x9bba, 0, 8, 0xc5 }, - { 0x9bc9, 0, 8, 0xff }, - { 0xd011, 0, 8, 0x58 }, - { 0xd012, 0, 2, 0x02 }, - { 0xd013, 0, 8, 0x89 }, - { 0xd014, 0, 2, 0x01 }, - { 0xd040, 0, 8, 0x58 }, - { 0xd041, 0, 2, 0x02 }, - { 0xd042, 0, 8, 0x89 }, - { 0xd043, 0, 2, 0x01 }, - { 0xd045, 1, 1, 0x00 }, - { 0x9bcf, 0, 1, 0x01 }, - { 0xd045, 2, 1, 0x01 }, - { 0xd04f, 0, 8, 0x9a }, - { 0xd050, 0, 1, 0x01 }, - { 0xd051, 0, 8, 0x5a }, - { 0xd052, 0, 1, 0x01 }, - { 0xd053, 0, 8, 0x50 }, - { 0xd054, 0, 8, 0x46 }, - { 0x9bd7, 0, 8, 0x0a }, - { 0x9bd8, 0, 8, 0x14 }, - { 0x9bd9, 0, 8, 0x08 }, - { 0x9bd0, 0, 8, 0xcd }, - { 0x9be4, 0, 8, 0xbb }, - { 0x9bbd, 0, 8, 0x93 }, - { 0x9be2, 0, 8, 0x80 }, - { 0x9bee, 0, 1, 0x01 }, -}; - -/* Freescale MC44S803 tuner init - AF9013_TUNER_MC44S803 = 133 */ -static struct regdesc tuner_init_mc44s803[] = { - { 0x9bd5, 0, 8, 0x01 }, - { 0x9bd6, 0, 8, 0x06 }, - { 0xd1a0, 1, 1, 0x01 }, - { 0xd000, 0, 1, 0x01 }, - { 0xd000, 1, 1, 0x00 }, - { 0xd001, 1, 1, 0x01 }, - { 0xd001, 0, 1, 0x00 }, - { 0xd001, 5, 1, 0x00 }, - { 0xd002, 0, 5, 0x19 }, - { 0xd003, 0, 5, 0x1a }, - { 0xd004, 0, 5, 0x19 }, - { 0xd005, 0, 5, 0x1a }, - { 0xd00e, 0, 5, 0x10 }, - { 0xd00f, 0, 3, 0x04 }, - { 0xd00f, 3, 3, 0x05 }, - { 0xd010, 0, 3, 0x04 }, - { 0xd010, 3, 3, 0x05 }, - { 0xd016, 4, 4, 0x03 }, - { 0xd01f, 0, 6, 0x0a }, - { 0xd020, 0, 6, 0x0a }, - { 0x9bda, 0, 8, 0x00 }, - { 0x9be3, 0, 8, 0x00 }, - { 0x9bf6, 0, 8, 0x01 }, - { 0x9bf8, 0, 8, 0x02 }, - { 0x9bf9, 0, 8, 0x02 }, - { 0x9bfc, 0, 8, 0x1f }, - { 0x9bbe, 0, 1, 0x01 }, - { 0x9bcc, 0, 1, 0x01 }, - { 0x9bb9, 0, 8, 0x00 }, - { 0x9bcd, 0, 8, 0x24 }, - { 0x9bff, 0, 8, 0x24 }, - { 0xd015, 0, 8, 0x46 }, - { 0xd016, 0, 1, 0x00 }, - { 0xd044, 0, 8, 0x46 }, - { 0xd045, 0, 1, 0x00 }, - { 0xd008, 0, 8, 0x01 }, - { 0xd009, 0, 2, 0x02 }, - { 0xd006, 0, 8, 0x7b }, - { 0xd007, 0, 2, 0x00 }, - { 0xd00c, 0, 8, 0x7c }, - { 0xd00d, 0, 2, 0x02 }, - { 0xd00a, 0, 8, 0xfe }, - { 0xd00b, 0, 2, 0x01 }, - { 0x9bc7, 0, 8, 0x08 }, - { 0x9bc8, 0, 8, 0x9a }, - { 0x9bc3, 0, 8, 0x01 }, - { 0x9bc4, 0, 8, 0x02 }, - { 0x9bc5, 0, 8, 0x7c }, - { 0x9bc6, 0, 8, 0x02 }, - { 0x9bba, 0, 8, 0xfc }, - { 0x9bc9, 0, 8, 0xaa }, - { 0xd011, 0, 8, 0x6b }, - { 0xd012, 0, 2, 0x00 }, - { 0xd013, 0, 8, 0x88 }, - { 0xd014, 0, 2, 0x02 }, - { 0xd040, 0, 8, 0x6b }, - { 0xd041, 0, 2, 0x00 }, - { 0xd042, 0, 8, 0x7c }, - { 0xd043, 0, 2, 0x02 }, - { 0xd045, 1, 1, 0x00 }, - { 0x9bcf, 0, 1, 0x01 }, - { 0xd045, 2, 1, 0x01 }, - { 0xd04f, 0, 8, 0x9a }, - { 0xd050, 0, 1, 0x01 }, - { 0xd051, 0, 8, 0x5a }, - { 0xd052, 0, 1, 0x01 }, - { 0xd053, 0, 8, 0x50 }, - { 0xd054, 0, 8, 0x46 }, - { 0x9bd7, 0, 8, 0x0a }, - { 0x9bd8, 0, 8, 0x14 }, - { 0x9bd9, 0, 8, 0x08 }, - { 0x9bd0, 0, 8, 0x9e }, - { 0x9be4, 0, 8, 0xff }, - { 0x9bbd, 0, 8, 0x9e }, - { 0x9be2, 0, 8, 0x25 }, - { 0x9bee, 0, 1, 0x01 }, - { 0xd73b, 3, 1, 0x00 }, -}; - -/* unknown, probably for tin can tuner, tuner init - AF9013_TUNER_UNKNOWN = 140 */ -static struct regdesc tuner_init_unknown[] = { - { 0x9bd5, 0, 8, 0x01 }, - { 0x9bd6, 0, 8, 0x02 }, - { 0xd1a0, 1, 1, 0x01 }, - { 0xd000, 0, 1, 0x01 }, - { 0xd000, 1, 1, 0x00 }, - { 0xd001, 1, 1, 0x01 }, - { 0xd001, 0, 1, 0x00 }, - { 0xd001, 5, 1, 0x00 }, - { 0xd002, 0, 5, 0x19 }, - { 0xd003, 0, 5, 0x1a }, - { 0xd004, 0, 5, 0x19 }, - { 0xd005, 0, 5, 0x1a }, - { 0xd00e, 0, 5, 0x10 }, - { 0xd00f, 0, 3, 0x04 }, - { 0xd00f, 3, 3, 0x05 }, - { 0xd010, 0, 3, 0x04 }, - { 0xd010, 3, 3, 0x05 }, - { 0xd016, 4, 4, 0x03 }, - { 0xd01f, 0, 6, 0x0a }, - { 0xd020, 0, 6, 0x0a }, - { 0x9bda, 0, 8, 0x01 }, - { 0x9be3, 0, 8, 0x01 }, - { 0xd1a0, 1, 1, 0x00 }, - { 0x9bbe, 0, 1, 0x01 }, - { 0x9bcc, 0, 1, 0x01 }, - { 0x9bb9, 0, 8, 0x00 }, - { 0x9bcd, 0, 8, 0x18 }, - { 0x9bff, 0, 8, 0x2c }, - { 0xd015, 0, 8, 0x46 }, - { 0xd016, 0, 1, 0x00 }, - { 0xd044, 0, 8, 0x46 }, - { 0xd045, 0, 1, 0x00 }, - { 0xd008, 0, 8, 0xdf }, - { 0xd009, 0, 2, 0x02 }, - { 0xd006, 0, 8, 0x44 }, - { 0xd007, 0, 2, 0x01 }, - { 0xd00c, 0, 8, 0x00 }, - { 0xd00d, 0, 2, 0x02 }, - { 0xd00a, 0, 8, 0xf6 }, - { 0xd00b, 0, 2, 0x01 }, - { 0x9bba, 0, 8, 0xf9 }, - { 0x9bc8, 0, 8, 0xaa }, - { 0x9bc3, 0, 8, 0xdf }, - { 0x9bc4, 0, 8, 0x02 }, - { 0x9bc5, 0, 8, 0x00 }, - { 0x9bc6, 0, 8, 0x02 }, - { 0x9bc9, 0, 8, 0xf0 }, - { 0xd011, 0, 8, 0x3c }, - { 0xd012, 0, 2, 0x01 }, - { 0xd013, 0, 8, 0xf7 }, - { 0xd014, 0, 2, 0x02 }, - { 0xd040, 0, 8, 0x0b }, - { 0xd041, 0, 2, 0x02 }, - { 0xd042, 0, 8, 0x4d }, - { 0xd043, 0, 2, 0x00 }, - { 0xd045, 1, 1, 0x00 }, - { 0x9bcf, 0, 1, 0x01 }, - { 0xd045, 2, 1, 0x01 }, - { 0xd04f, 0, 8, 0x9a }, - { 0xd050, 0, 1, 0x01 }, - { 0xd051, 0, 8, 0x5a }, - { 0xd052, 0, 1, 0x01 }, - { 0xd053, 0, 8, 0x50 }, - { 0xd054, 0, 8, 0x46 }, - { 0x9bd7, 0, 8, 0x0a }, - { 0x9bd8, 0, 8, 0x14 }, - { 0x9bd9, 0, 8, 0x08 }, -}; - -/* NXP TDA18271 tuner init - AF9013_TUNER_TDA18271 = 156 */ -static struct regdesc tuner_init_tda18271[] = { - { 0x9bd5, 0, 8, 0x01 }, - { 0x9bd6, 0, 8, 0x04 }, - { 0xd1a0, 1, 1, 0x01 }, - { 0xd000, 0, 1, 0x01 }, - { 0xd000, 1, 1, 0x00 }, - { 0xd001, 1, 1, 0x01 }, - { 0xd001, 0, 1, 0x00 }, - { 0xd001, 5, 1, 0x00 }, - { 0xd002, 0, 5, 0x19 }, - { 0xd003, 0, 5, 0x1a }, - { 0xd004, 0, 5, 0x19 }, - { 0xd005, 0, 5, 0x1a }, - { 0xd00e, 0, 5, 0x10 }, - { 0xd00f, 0, 3, 0x04 }, - { 0xd00f, 3, 3, 0x05 }, - { 0xd010, 0, 3, 0x04 }, - { 0xd010, 3, 3, 0x05 }, - { 0xd016, 4, 4, 0x03 }, - { 0xd01f, 0, 6, 0x0a }, - { 0xd020, 0, 6, 0x0a }, - { 0x9bda, 0, 8, 0x01 }, - { 0x9be3, 0, 8, 0x01 }, - { 0xd1a0, 1, 1, 0x00 }, - { 0x9bbe, 0, 1, 0x01 }, - { 0x9bcc, 0, 1, 0x01 }, - { 0x9bb9, 0, 8, 0x00 }, - { 0x9bcd, 0, 8, 0x18 }, - { 0x9bff, 0, 8, 0x2c }, - { 0xd015, 0, 8, 0x46 }, - { 0xd016, 0, 1, 0x00 }, - { 0xd044, 0, 8, 0x46 }, - { 0xd045, 0, 1, 0x00 }, - { 0xd008, 0, 8, 0xdf }, - { 0xd009, 0, 2, 0x02 }, - { 0xd006, 0, 8, 0x44 }, - { 0xd007, 0, 2, 0x01 }, - { 0xd00c, 0, 8, 0x00 }, - { 0xd00d, 0, 2, 0x02 }, - { 0xd00a, 0, 8, 0xf6 }, - { 0xd00b, 0, 2, 0x01 }, - { 0x9bba, 0, 8, 0xf9 }, - { 0x9bc8, 0, 8, 0xaa }, - { 0x9bc3, 0, 8, 0xdf }, - { 0x9bc4, 0, 8, 0x02 }, - { 0x9bc5, 0, 8, 0x00 }, - { 0x9bc6, 0, 8, 0x02 }, - { 0x9bc9, 0, 8, 0xf0 }, - { 0xd011, 0, 8, 0x3c }, - { 0xd012, 0, 2, 0x01 }, - { 0xd013, 0, 8, 0xf7 }, - { 0xd014, 0, 2, 0x02 }, - { 0xd040, 0, 8, 0x0b }, - { 0xd041, 0, 2, 0x02 }, - { 0xd042, 0, 8, 0x4d }, - { 0xd043, 0, 2, 0x00 }, - { 0xd045, 1, 1, 0x00 }, - { 0x9bcf, 0, 1, 0x01 }, - { 0xd045, 2, 1, 0x01 }, - { 0xd04f, 0, 8, 0x9a }, - { 0xd050, 0, 1, 0x01 }, - { 0xd051, 0, 8, 0x5a }, - { 0xd052, 0, 1, 0x01 }, - { 0xd053, 0, 8, 0x50 }, - { 0xd054, 0, 8, 0x46 }, - { 0x9bd7, 0, 8, 0x0a }, - { 0x9bd8, 0, 8, 0x14 }, - { 0x9bd9, 0, 8, 0x08 }, - { 0x9bd0, 0, 8, 0xa8 }, - { 0x9be4, 0, 8, 0x7f }, - { 0x9bbd, 0, 8, 0xa8 }, - { 0x9be2, 0, 8, 0x20 }, - { 0x9bee, 0, 1, 0x01 }, -}; -
This reverts commit 1b7a3026cfd558fbd9c4c631baa1def675a00478.
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: e66d5f03497b02141282de5ebb8ddfbaf56cc988
Date: Fri, 20 Jan 2012 12:00:26 GMT
Commit diff
--- a/compare.sh+++ b/compare.sh @@ -16,8 +16,6 @@ for f in *; do
echo "SAME FILE $NEW dvb/$f" fi- else - echo "NEW FILE $f"
fi done
--- a/debian/changelog+++ b/debian/changelog @@ -1,4 +1,4 @@ -af90xx-dkms (0.5) unstable; urgency=low +af90xx-dkms (0.5-0mario1) unstable; urgency=low
* Update from 3.1 sources * Complete update for 3.1.0, no compatible with lower
--- a/debian/control+++ b/debian/control @@ -7,5 +7,5 @@ Standards-Version: 3.9.2
Package: af90xx-dkms Architecture: all-Depends: dkms (>= 1.95), ${misc:Depends} +Depends: dkms (>= 1.95), ${misc:Depends}, linux-image (>= 3.1.0)
Description: Afatech AF9035 kernel module
--- /dev/null+++ b/debian/patches/debian-changes-0.0.3-0ppa3 @@ -0,0 +1,699 @@ +Description: Upstream changes introduced in version 0.0.3-0ppa3 + This patch has been created by dpkg-source during the package build. + Here's the last changelog entry, hopefully it gives details on why + those changes were made: + . + af90xx-dkms (0.0.3-0ppa3) lucid; urgency=low + . + * Check compability with 2.6.26 or 2.6.32 + . + The person named in the Author field signed this changelog entry. +Author: Mario Izquierdo (mariodebian) + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: , +Bug: +Bug-Debian: http://bugs.debian.org/ +Bug-Ubuntu: https://launchpad.net/bugs/ +Forwarded: +Reviewed-By: +Last-Update: + +--- af90xx-dkms-0.0.3.orig/Makefile ++++ af90xx-dkms-0.0.3/Makefile +@@ -16,7 +16,6 @@ EXTRA_CFLAGS += -DCONFIG_DVB_USB_DEBUG=y + obj-m += dvb/ + + +-EXTRA_CFLAGS += -include config-compat.h + EXTRA_CFLAGS += -include include/linux/version.h + + KVERS:=$(shell uname -r) +--- /dev/null ++++ af90xx-dkms-0.0.3/dvb/dmx.h +@@ -0,0 +1,157 @@ ++/* ++ * dmx.h ++ * ++ * Copyright (C) 2000 Marcus Metzler ++ * & Ralph Metzler ++ * for convergence integrated media GmbH ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public License ++ * as published by the Free Software Foundation; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ */ ++ ++#ifndef _DVBDMX_H_ ++#define _DVBDMX_H_ ++ ++#include types.h> ++#ifdef __KERNEL__ ++#include time.h> ++#else ++#include ++#endif ++ ++ ++#define DMX_FILTER_SIZE 16 ++ ++typedef enum ++{ ++ DMX_OUT_DECODER, /* Streaming directly to decoder. */ ++ DMX_OUT_TAP, /* Output going to a memory buffer */ ++ /* (to be retrieved via the read command).*/ ++ DMX_OUT_TS_TAP, /* Output multiplexed into a new TS */ ++ /* (to be retrieved by reading from the */ ++ /* logical DVR device). */ ++ DMX_OUT_TSDEMUX_TAP /* Like TS_TAP but retrieved from the DMX device */ ++} dmx_output_t; ++ ++ ++typedef enum ++{ ++ DMX_IN_FRONTEND, /* Input from a front-end device. */ ++ DMX_IN_DVR /* Input from the logical DVR device. */ ++} dmx_input_t; ++ ++ ++typedef enum ++{ ++ DMX_PES_AUDIO0, ++ DMX_PES_VIDEO0, ++ DMX_PES_TELETEXT0, ++ DMX_PES_SUBTITLE0, ++ DMX_PES_PCR0, ++ ++ DMX_PES_AUDIO1, ++ DMX_PES_VIDEO1, ++ DMX_PES_TELETEXT1, ++ DMX_PES_SUBTITLE1, ++ DMX_PES_PCR1, ++ ++ DMX_PES_AUDIO2, ++ DMX_PES_VIDEO2, ++ DMX_PES_TELETEXT2, ++ DMX_PES_SUBTITLE2, ++ DMX_PES_PCR2, ++ ++ DMX_PES_AUDIO3, ++ DMX_PES_VIDEO3, ++ DMX_PES_TELETEXT3, ++ DMX_PES_SUBTITLE3, ++ DMX_PES_PCR3, ++ ++ DMX_PES_OTHER ++} dmx_pes_type_t; ++ ++#define DMX_PES_AUDIO DMX_PES_AUDIO0 ++#define DMX_PES_VIDEO DMX_PES_VIDEO0 ++#define DMX_PES_TELETEXT DMX_PES_TELETEXT0 ++#define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0 ++#define DMX_PES_PCR DMX_PES_PCR0 ++ ++ ++typedef struct dmx_filter ++{ ++ __u8 filter[DMX_FILTER_SIZE]; ++ __u8 mask[DMX_FILTER_SIZE]; ++ __u8 mode[DMX_FILTER_SIZE]; ++} dmx_filter_t; ++ ++ ++struct dmx_sct_filter_params ++{ ++ __u16 pid; ++ dmx_filter_t filter; ++ __u32 timeout; ++ __u32 flags; ++#define DMX_CHECK_CRC 1 ++#define DMX_ONESHOT 2 ++#define DMX_IMMEDIATE_START 4 ++#define DMX_KERNEL_CLIENT 0x8000 ++}; ++ ++ ++struct dmx_pes_filter_params ++{ ++ __u16 pid; ++ dmx_input_t input; ++ dmx_output_t output; ++ dmx_pes_type_t pes_type; ++ __u32 flags; ++}; ++ ++typedef struct dmx_caps { ++ __u32 caps; ++ int num_decoders; ++} dmx_caps_t; ++ ++typedef enum { ++ DMX_SOURCE_FRONT0 = 0, ++ DMX_SOURCE_FRONT1, ++ DMX_SOURCE_FRONT2, ++ DMX_SOURCE_FRONT3, ++ DMX_SOURCE_DVR0 = 16, ++ DMX_SOURCE_DVR1, ++ DMX_SOURCE_DVR2, ++ DMX_SOURCE_DVR3 ++} dmx_source_t; ++ ++struct dmx_stc { ++ unsigned int num; /* input : which STC? 0..N */ ++ unsigned int base; /* output: divisor for stc to get 90 kHz clock */ ++ __u64 stc; /* output: stc in 'base'*90 kHz units */ ++}; ++ ++ ++#define DMX_START _IO('o', 41) ++#define DMX_STOP _IO('o', 42) ++#define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params) ++#define DMX_SET_PES_FILTER _IOW('o', 44, struct dmx_pes_filter_params) ++#define DMX_SET_BUFFER_SIZE _IO('o', 45) ++#define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5]) ++#define DMX_GET_CAPS _IOR('o', 48, dmx_caps_t) ++#define DMX_SET_SOURCE _IOW('o', 49, dmx_source_t) ++#define DMX_GET_STC _IOWR('o', 50, struct dmx_stc) ++#define DMX_ADD_PID _IOW('o', 51, __u16) ++#define DMX_REMOVE_PID _IOW('o', 52, __u16) ++ ++#endif /*_DVBDMX_H_*/ +--- af90xx-dkms-0.0.3.orig/dvb/dmxdev.c ++++ af90xx-dkms-0.0.3/dvb/dmxdev.c +@@ -28,6 +28,7 @@ + #include module.h> + #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39) + #include smp_lock.h> ++#include "dmx.h" + #endif + #include poll.h> + #include ioctl.h> +--- /dev/null ++++ af90xx-dkms-0.0.3/dvb/config-compat.h +@@ -0,0 +1,14 @@ ++#ifndef __CONFIG_COMPAT_H__ ++#define __CONFIG_COMPAT_H__ ++ ++#include version.h> ++#include mmdebug.h> ++ ++#define CONFIG_DVB_AF9013_MODULE 1 ++#define CONFIG_DVB_MAX_ADAPTERS 8 ++#define CONFIG_MEDIA_TUNER_TUA9001_MODULE 1 ++#define CONFIG_DVB_USB_AF9015_MODULE 1 ++#define CONFIG_DVB_USB_AF9035_MODULE 1 ++ ++#endif ++ +--- af90xx-dkms-0.0.3.orig/dvb/mxl5007t.h ++++ af90xx-dkms-0.0.3/dvb/mxl5007t.h +@@ -77,7 +77,7 @@ struct mxl5007t_config { + unsigned int clk_out_enable:1; + }; + +- ++#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) + #if defined(CONFIG_MEDIA_TUNER_MXL5007T) || (defined(CONFIG_MEDIA_TUNER_MXL5007T_MODULE) && defined(MODULE)) + extern struct dvb_frontend *mxl5007t_attach(struct dvb_frontend *fe, + struct i2c_adapter *i2c, u8 addr, +@@ -92,6 +92,7 @@ static inline struct dvb_frontend *mxl50 + return NULL; + } + #endif ++#endif + + #endif /* __MXL5007T_H__ */ + +--- /dev/null ++++ af90xx-dkms-0.0.3/dvb/frontend.h +@@ -0,0 +1,414 @@ ++/* ++ * frontend.h ++ * ++ * Copyright (C) 2000 Marcus Metzler ++ * Ralph Metzler ++ * Holger Waechtler ++ * Andre Draszik ++ * for convergence integrated media GmbH ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public License ++ * as published by the Free Software Foundation; either version 2.1 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ */ ++ ++#ifndef _DVBFRONTEND_H_ ++#define _DVBFRONTEND_H_ ++ ++#include types.h> ++ ++typedef enum fe_type { ++ FE_QPSK, ++ FE_QAM, ++ FE_OFDM, ++ FE_ATSC ++} fe_type_t; ++ ++ ++typedef enum fe_caps { ++ FE_IS_STUPID = 0, ++ FE_CAN_INVERSION_AUTO = 0x1, ++ FE_CAN_FEC_1_2 = 0x2, ++ FE_CAN_FEC_2_3 = 0x4, ++ FE_CAN_FEC_3_4 = 0x8, ++ FE_CAN_FEC_4_5 = 0x10, ++ FE_CAN_FEC_5_6 = 0x20, ++ FE_CAN_FEC_6_7 = 0x40, ++ FE_CAN_FEC_7_8 = 0x80, ++ FE_CAN_FEC_8_9 = 0x100, ++ FE_CAN_FEC_AUTO = 0x200, ++ FE_CAN_QPSK = 0x400, ++ FE_CAN_QAM_16 = 0x800, ++ FE_CAN_QAM_32 = 0x1000, ++ FE_CAN_QAM_64 = 0x2000, ++ FE_CAN_QAM_128 = 0x4000, ++ FE_CAN_QAM_256 = 0x8000, ++ FE_CAN_QAM_AUTO = 0x10000, ++ FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000, ++ FE_CAN_BANDWIDTH_AUTO = 0x40000, ++ FE_CAN_GUARD_INTERVAL_AUTO = 0x80000, ++ FE_CAN_HIERARCHY_AUTO = 0x100000, ++ FE_CAN_8VSB = 0x200000, ++ FE_CAN_16VSB = 0x400000, ++ FE_HAS_EXTENDED_CAPS = 0x800000, * We need more bitspace for newer APIs, indicate this. */ ++ FE_CAN_TURBO_FEC = 0x8000000, /* frontend supports "turbo fec modulation" */ ++ FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */ ++ FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */ ++ FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */ ++ FE_CAN_MUTE_TS = 0x80000000 /* frontend can stop spurious TS data output */ ++} fe_caps_t; ++ ++ ++struct dvb_frontend_info { ++ char name[128]; ++ fe_type_t type; ++ __u32 frequency_min; ++ __u32 frequency_max; ++ __u32 frequency_stepsize; ++ __u32 frequency_tolerance; ++ __u32 symbol_rate_min; ++ __u32 symbol_rate_max; ++ __u32 symbol_rate_tolerance; /* ppm */ ++ __u32 notifier_delay; /* DEPRECATED */ ++ fe_caps_t caps; ++}; ++ ++ ++/** ++ * Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for ++ * the meaning of this struct... ++ */ ++struct dvb_diseqc_master_cmd { ++ __u8 msg [6]; /* { framing, address, command, data [3] } */ ++ __u8 msg_len; /* valid values are 3...6 */ ++}; ++ ++ ++struct dvb_diseqc_slave_reply { ++ __u8 msg [4]; /* { framing, data [3] } */ ++ __u8 msg_len; /* valid values are 0...4, 0 means no msg */ ++ int timeout; /* return from ioctl after timeout ms with */ ++}; /* errorcode when no message was received */ ++ ++ ++typedef enum fe_sec_voltage { ++ SEC_VOLTAGE_13, ++ SEC_VOLTAGE_18, ++ SEC_VOLTAGE_OFF ++} fe_sec_voltage_t; ++ ++ ++typedef enum fe_sec_tone_mode { ++ SEC_TONE_ON, ++ SEC_TONE_OFF ++} fe_sec_tone_mode_t; ++ ++ ++typedef enum fe_sec_mini_cmd { ++ SEC_MINI_A, ++ SEC_MINI_B ++} fe_sec_mini_cmd_t; ++ ++ ++typedef enum fe_status { ++ FE_HAS_SIGNAL = 0x01, /* found something above the noise level */ ++ FE_HAS_CARRIER = 0x02, /* found a DVB signal */ ++ FE_HAS_VITERBI = 0x04, /* FEC is stable */ ++ FE_HAS_SYNC = 0x08, /* found sync bytes */ ++ FE_HAS_LOCK = 0x10, /* everything's working... */ ++ FE_TIMEDOUT = 0x20, /* no lock within the last ~2 seconds */ ++ FE_REINIT = 0x40 /* frontend was reinitialized, */ ++} fe_status_t; /* application is recommended to reset */ ++ /* DiSEqC, tone and parameters */ ++ ++typedef enum fe_spectral_inversion { ++ INVERSION_OFF, ++ INVERSION_ON, ++ INVERSION_AUTO ++} fe_spectral_inversion_t; ++ ++ ++typedef enum fe_code_rate { ++ FEC_NONE = 0, ++ FEC_1_2, ++ FEC_2_3, ++ FEC_3_4, ++ FEC_4_5, ++ FEC_5_6, ++ FEC_6_7, ++ FEC_7_8, ++ FEC_8_9, ++ FEC_AUTO, ++ FEC_3_5, ++ FEC_9_10, ++} fe_code_rate_t; ++ ++ ++typedef enum fe_modulation { ++ QPSK, ++ QAM_16, ++ QAM_32, ++ QAM_64, ++ QAM_128, ++ QAM_256, ++ QAM_AUTO, ++ VSB_8, ++ VSB_16, ++ PSK_8, ++ APSK_16, ++ APSK_32, ++ DQPSK, ++} fe_modulation_t; ++ ++typedef enum fe_transmit_mode { ++ TRANSMISSION_MODE_2K, ++ TRANSMISSION_MODE_8K, ++ TRANSMISSION_MODE_AUTO, ++ TRANSMISSION_MODE_4K ++} fe_transmit_mode_t; ++ ++typedef enum fe_bandwidth { ++ BANDWIDTH_8_MHZ, ++ BANDWIDTH_7_MHZ, ++ BANDWIDTH_6_MHZ, ++ BANDWIDTH_AUTO ++} fe_bandwidth_t; ++ ++ ++typedef enum fe_guard_interval { ++ GUARD_INTERVAL_1_32, ++ GUARD_INTERVAL_1_16, ++ GUARD_INTERVAL_1_8, ++ GUARD_INTERVAL_1_4, ++ GUARD_INTERVAL_AUTO ++} fe_guard_interval_t; ++ ++ ++typedef enum fe_hierarchy { ++ HIERARCHY_NONE, ++ HIERARCHY_1, ++ HIERARCHY_2, ++ HIERARCHY_4, ++ HIERARCHY_AUTO ++} fe_hierarchy_t; ++ ++ ++struct dvb_qpsk_parameters { ++ __u32 symbol_rate; /* symbol rate in Symbols per second */ ++ fe_code_rate_t fec_inner; /* forward error correction (see above) */ ++}; ++ ++struct dvb_qam_parameters { ++ __u32 symbol_rate; /* symbol rate in Symbols per second */ ++ fe_code_rate_t fec_inner; /* forward error correction (see above) */ ++ fe_modulation_t modulation; /* modulation type (see above) */ ++}; ++ ++struct dvb_vsb_parameters { ++ fe_modulation_t modulation; /* modulation type (see above) */ ++}; ++ ++struct dvb_ofdm_parameters { ++ fe_bandwidth_t bandwidth; ++ fe_code_rate_t code_rate_HP; /* high priority stream code rate */ ++ fe_code_rate_t code_rate_LP; /* low priority stream code rate */ ++ fe_modulation_t constellation; /* modulation type (see above) */ ++ fe_transmit_mode_t transmission_mode; ++ fe_guard_interval_t guard_interval; ++ fe_hierarchy_t hierarchy_information; ++}; ++ ++ ++struct dvb_frontend_parameters { ++ __u32 frequency; /* (absolute) frequency in Hz for QAM/OFDM/ATSC */ ++ /* intermediate frequency in kHz for QPSK */ ++ fe_spectral_inversion_t inversion; ++ union { ++ struct dvb_qpsk_parameters qpsk; ++ struct dvb_qam_parameters qam; ++ struct dvb_ofdm_parameters ofdm; ++ struct dvb_vsb_parameters vsb; ++ } u; ++}; ++ ++ ++struct dvb_frontend_event { ++ fe_status_t status; ++ struct dvb_frontend_parameters parameters; ++}; ++ ++/* S2API Commands */ ++#define DTV_UNDEFINED 0 ++#define DTV_TUNE 1 ++#define DTV_CLEAR 2 ++#define DTV_FREQUENCY 3 ++#define DTV_MODULATION 4 ++#define DTV_BANDWIDTH_HZ 5 ++#define DTV_INVERSION 6 ++#define DTV_DISEQC_MASTER 7 ++#define DTV_SYMBOL_RATE 8 ++#define DTV_INNER_FEC 9 ++#define DTV_VOLTAGE 10 ++#define DTV_TONE 11 ++#define DTV_PILOT 12 ++#define DTV_ROLLOFF 13 ++#define DTV_DISEQC_SLAVE_REPLY 14 ++ ++/* Basic enumeration set for querying unlimited capabilities */ ++#define DTV_FE_CAPABILITY_COUNT 15 ++#define DTV_FE_CAPABILITY 16 ++#define DTV_DELIVERY_SYSTEM 17 ++ ++/* ISDB-T and ISDB-Tsb */ ++#define DTV_ISDBT_PARTIAL_RECEPTION 18 ++#define DTV_ISDBT_SOUND_BROADCASTING 19 ++ ++#define DTV_ISDBT_SB_SUBCHANNEL_ID 20 ++#define DTV_ISDBT_SB_SEGMENT_IDX 21 ++#define DTV_ISDBT_SB_SEGMENT_COUNT 22 ++ ++#define DTV_ISDBT_LAYERA_FEC 23 ++#define DTV_ISDBT_LAYERA_MODULATION 24 ++#define DTV_ISDBT_LAYERA_SEGMENT_COUNT 25 ++#define DTV_ISDBT_LAYERA_TIME_INTERLEAVING 26 ++ ++#define DTV_ISDBT_LAYERB_FEC 27 ++#define DTV_ISDBT_LAYERB_MODULATION 28 ++#define DTV_ISDBT_LAYERB_SEGMENT_COUNT 29 ++#define DTV_ISDBT_LAYERB_TIME_INTERLEAVING 30 ++ ++#define DTV_ISDBT_LAYERC_FEC 31 ++#define DTV_ISDBT_LAYERC_MODULATION 32 ++#define DTV_ISDBT_LAYERC_SEGMENT_COUNT 33 ++#define DTV_ISDBT_LAYERC_TIME_INTERLEAVING 34 ++ ++#define DTV_API_VERSION 35 ++ ++#define DTV_CODE_RATE_HP 36 ++#define DTV_CODE_RATE_LP 37 ++#define DTV_GUARD_INTERVAL 38 ++#define DTV_TRANSMISSION_MODE 39 ++#define DTV_HIERARCHY 40 ++ ++#define DTV_ISDBT_LAYER_ENABLED 41 ++ ++#define DTV_ISDBS_TS_ID 42 ++ ++#define DTV_MAX_COMMAND DTV_ISDBS_TS_ID ++ ++typedef enum fe_pilot { ++ PILOT_ON, ++ PILOT_OFF, ++ PILOT_AUTO, ++} fe_pilot_t; ++ ++typedef enum fe_rolloff { ++ ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */ ++ ROLLOFF_20, ++ ROLLOFF_25, ++ ROLLOFF_AUTO, ++} fe_rolloff_t; ++ ++typedef enum fe_delivery_system { ++ SYS_UNDEFINED, ++ SYS_DVBC_ANNEX_AC, ++ SYS_DVBC_ANNEX_B, ++ SYS_DVBT, ++ SYS_DSS, ++ SYS_DVBS, ++ SYS_DVBS2, ++ SYS_DVBH, ++ SYS_ISDBT, ++ SYS_ISDBS, ++ SYS_ISDBC, ++ SYS_ATSC, ++ SYS_ATSCMH, ++ SYS_DMBTH, ++ SYS_CMMB, ++ SYS_DAB, ++} fe_delivery_system_t; ++ ++struct dtv_cmds_h { ++ char *name; /* A display name for debugging purposes */ ++ ++ __u32 cmd; /* A unique ID */ ++ ++ /* Flags */ ++ __u32 set:1; /* Either a set or get property */ ++ __u32 buffer:1; /* Does this property use the buffer? */ ++ __u32 reserved:30; /* Align */ ++}; ++ ++struct dtv_property { ++ __u32 cmd; ++ __u32 reserved[3]; ++ union { ++ __u32 data; ++ struct { ++ __u8 data[32]; ++ __u32 len; ++ __u32 reserved1[3]; ++ void *reserved2; ++ } buffer; ++ } u; ++ int result; ++} __attribute__ ((packed)); ++ ++/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ ++#define DTV_IOCTL_MAX_MSGS 64 ++ ++struct dtv_properties { ++ __u32 num; ++ struct dtv_property *props; ++}; ++ ++#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties) ++#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties) ++ ++ ++/** ++ * When set, this flag will disable any zigzagging or other "normal" tuning ++ * behaviour. Additionally, there will be no automatic monitoring of the lock ++ * status, and hence no frontend events will be generated. If a frontend device ++ * is closed, this flag will be automatically turned off when the device is ++ * reopened read-write. ++ */ ++#define FE_TUNE_MODE_ONESHOT 0x01 ++ ++ ++#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info) ++ ++#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62) ++#define FE_DISEQC_SEND_MASTER_CMD _IOW('o', 63, struct dvb_diseqc_master_cmd) ++#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply) ++#define FE_DISEQC_SEND_BURST _IO('o', 65) /* fe_sec_mini_cmd_t */ ++ ++#define FE_SET_TONE _IO('o', 66) /* fe_sec_tone_mode_t */ ++#define FE_SET_VOLTAGE _IO('o', 67) /* fe_sec_voltage_t */ ++#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68) /* int */ ++ ++#define FE_READ_STATUS _IOR('o', 69, fe_status_t) ++#define FE_READ_BER _IOR('o', 70, __u32) ++#define FE_READ_SIGNAL_STRENGTH _IOR('o', 71, __u16) ++#define FE_READ_SNR _IOR('o', 72, __u16) ++#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32) ++ ++#define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters) ++#define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters) ++#define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81) /* unsigned int */ ++#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event) ++ ++#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */ ++ ++#endif /*_DVBFRONTEND_H_*/ +--- af90xx-dkms-0.0.3.orig/dvb/af9035.h ++++ af90xx-dkms-0.0.3/dvb/af9035.h +@@ -184,4 +184,22 @@ struct af9035_firmware_header { + struct af9035_segment segment[SEGMENT_MAX_COUNT]; + }; + ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39) ++#if defined(CONFIG_MEDIA_TUNER_MXL5007T) || (defined(CONFIG_MEDIA_TUNER_MXL5007T_MODULE) && defined(MODULE)) ++extern struct dvb_frontend *mxl5007t_attach(struct dvb_frontend *fe, ++ struct i2c_adapter *i2c, u8 addr, ++ struct mxl5007t_config *cfg); ++#else ++static inline struct dvb_frontend *mxl5007t_attach(struct dvb_frontend *fe, ++ struct i2c_adapter *i2c, ++ u8 addr, ++ struct mxl5007t_config *cfg) ++{ ++ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); ++ return NULL; ++} ++#endif ++#endif ++ + #endif +--- af90xx-dkms-0.0.3.orig/dvb/dvb_frontend.h ++++ af90xx-dkms-0.0.3/dvb/dvb_frontend.h +@@ -38,7 +38,13 @@ + #include mutex.h> + #include slab.h> + ++#include version.h> ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39) ++#include "frontend.h" ++#else + #include dvb/frontend.h> ++#endif + + #include "dvbdev.h" +
--- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +debian-changes-0.0.3-0ppa3
--- a/debian/rules +++ b/debian/rules @@ -15,13 +15,12 @@ sname:=af90xxsversion:=$(shell dpkg-parsechangelog|grep "^Version:"|cut -d" " -f2|rev|cut -d- -f2-|rev|cut -d':' -f2)-build-arch: -build-indep: +
build: clean: dh_testdir- dh_prep + dh_clean
install: DH_OPTIONS=install: build
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: b8938a2f49b6d99426f5e255db8d70418800cc9c
Date: Sun, 08 Jan 2012 17:09:13 GMT
Commit diff
--- a/Makefile+++ b/Makefile @@ -76,15 +76,19 @@ targz: clean
-DISTROS:=unstable testing squeeze lenny maverick lucid karmic jaunty -ARCHITECTURES=i386 amd64 +#DISTROS:=unstable testing squeeze lenny natty maverick lucid +DISTROS:=unstable testing squeeze precise oneiric natty lucid +ARCHS=i386 amd64
allpkgs:+ @echo DISTROS=$(DISTROS) + @echo ARCHS=$(ARCHS)
@if [ "$(PKG)" = "" ]; then echo "Need to say PKG=foo "; exit 1; fi @for distro in $(DISTROS); do\ echo "\n\n\t BUILD $(PKG) $$distro i386"; \- scripts/build.pkg.sh $(PKG) $$distro i386 || true ; \ - if grep Architecture $(PKG)/debian/control | grep -q any ; then \ + echo $(ARCHS) | grep -q i386 && scripts/build.pkg.sh $(PKG) $$distro i386 || true ; \ + if grep Architecture $(PKG)/debian/control | grep -q any && echo $(ARCHS) | grep -q amd64; then \
scripts/build.pkg.sh $(PKG) $$distro amd64 || true ; \ fi ;\ done+
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: b18c42ee2b9ba12517794f327aeacb3940dc1dc9
Date: Thu, 05 Jan 2012 18:10:03 GMT
Commit diff
--- a/tcos-configurator.desktop+++ b/tcos-configurator.desktop @@ -1,6 +1,5 @@
[Desktop Entry] Version=1.0-Encoding=UTF-8
Name=TCOS Server Configurator Name[es]=Configurador servidor TCOSComment=Configure TCOS server daemons and users
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: 2f9e45af75a4694c49ba20afb5ce10206358782a
Date: Thu, 05 Jan 2012 16:23:18 GMT
Commit diff
--- a/debian/changelog+++ b/debian/changelog @@ -1,3 +1,11 @@ +tcosconfig (0.3.32) unstable; urgency=low + + * TcosChrootBuilder.py: + - Update kernel versions + - Read /var/lib/tcos/version.conf + + -- Mario Izquierdo (mariodebian) Thu, 05 Jan 2012 17:21:39 +0100 +
tcosconfig (0.3.31) unstable; urgency=low* tcosconfig.desktop: Remove Encoding from desktop file
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: 4aa29f1c6ac3054165caed7157a0eed7e4288272
Date: Thu, 05 Jan 2012 16:21:05 GMT
Commit diff
--- a/TcosChrootBuilder.py+++ b/TcosChrootBuilder.py @@ -40,25 +40,22 @@ def print_debug(txt):
print ( "TcosChrootBuilder::%s " %(txt) ) DISTRO_VERSIONS={-"debian":["unstable", "testing", "squeeze", "lenny"] , -#"ubuntu":["hardy", "intrepid", "jaunty", "karmic", "lucid", "maverick"], -"ubuntu":["lucid", "maverick", "natty"], +"debian":["unstable", "testing", "squeeze"] , +"ubuntu":["precise", "oneiric", "natty", "maverick","lucid"],
} KERNEL_VERSIONS={-"lenny":"2.6.26-2-486" , -"squeeze":"2.6.32-5-486" , -"testing":"2.6.32-5-486" , -"unstable":"2.6.39-1-486" , -#"hardy":"2.6.24-28-generic" , -#"intrepid":"2.6.27-17-generic", -#"jaunty":"2.6.28-19-generic", -#"karmic":"2.6.31-22-generic", -"lucid":"2.6.32-31-generic", -"maverick":"2.6.35-28-generic", -"natty":"2.6.35-22-generic", +"squeeze":"2.6.32-5-486", +"testing":"3.1.0-1-486", +"unstable":"3.1.0-1-486", + +"lucid":"2.6.32-37-generic", +"maverick":"2.6.35-31-generic", +"natty":"2.6.38-13-generic", +"oneiric":"3.0.0-14-generic", +"precise":"3.2.0-7-generic",
} DISTRO_ALIAS={@@ -86,7 +83,7 @@ BUILD_CHROOT_CMD="/usr/sbin/tcos-buildchroot"
class TcosChroot: def __init__(self):- self.buildvars={} + self.buildvars={"DISTRIBUTION":"debian", "TCOS_KERNEL":KERNEL_VERSIONS["unstable"]}
# Widgets self.ui = gtk.Builder()@@ -132,7 +129,7 @@ class TcosChroot:
self.combo_distribution.connect('changed', self.on_distribution_combo_change) self.populate_select(self.combo_distribution, DISTRO_VERSIONS.keys())- self.populate_select(self.combo_arch, ['i386','amd64', 'ppc']) + self.populate_select(self.combo_arch, ['i386','amd64'])
# extra mirrors self.entry_securitymirror = self.ui.get_object("entry_securitymirror")@@ -200,13 +197,22 @@ class TcosChroot:
def loadData(self): print_debug("loadData() init")- version_data=self.getFile("/etc/tcos/version.conf") + version_data=[] + if os.path.isfile("/var/lib/tcos/version.conf"): + version_data=self.getFile("/var/lib/tcos/version.conf") + + elif os.path.isfile("/etc/tcos/version.conf"): + version_data=self.getFile("/etc/tcos/version.conf") +
for line in version_data: self.buildvars[line.split("=")[0]]=line.split("=")[1].replace('"','') tcos_data=self.getFile("/etc/tcos/tcos.conf") for line in tcos_data:+ if "TCOS_KERNEL" in line: continue + if "NEWEST_VMLINUZ" in line: continue
self.buildvars[line.split("=")[0]]=line.split("=")[1].replace('"','')+ print_debug("loadData() %s" %self.buildvars)
def on_distro_combo_change(self, widget):
===================================
Author: Mario Izquierdo (mariodebian)
GIT id: 495288dd58d573336fd38f21102fa81527489642
Date: Mon, 02 Jan 2012 15:44:59 GMT
Commit diff
--- a/debian/changelog+++ b/debian/changelog @@ -1,3 +1,10 @@ +tcosconfig (0.3.31) unstable; urgency=low + + * tcosconfig.desktop: Remove Encoding from desktop file + * Switch from CDBS to dh7 and format 3.0 (native) + + -- Mario Izquierdo (mariodebian) Mon, 02 Jan 2012 16:44:23 +0100 +
tcosconfig (0.3.30) unstable; urgency=low* ConfigReader.py: Disable kernel version check (allow 3.0 kernels)
