[tuxdroid-svn] r4926 - in software_suite_v3/software/plugin: . plugin-maxlight plugin-maxlight/trun
Status: Beta
Brought to you by:
ks156
|
From: jerome <c2m...@c2...> - 2009-06-29 08:15:49
|
Author: jerome Date: 2009-06-29 10:15:41 +0200 (Mon, 29 Jun 2009) New Revision: 4926 Added: software_suite_v3/software/plugin/plugin-maxlight/ software_suite_v3/software/plugin/plugin-maxlight/branches/ software_suite_v3/software/plugin/plugin-maxlight/tags/ software_suite_v3/software/plugin/plugin-maxlight/trunk/ software_suite_v3/software/plugin/plugin-maxlight/trunk/build.py software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/ software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/PluginPackager.py software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/__init__.py software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/ software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/__init__.py software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/misc/ software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/misc/DirectoriesAndFilesTools.py software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/misc/__init__.py software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/misc/version.py software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/version.py software_suite_v3/software/plugin/plugin-maxlight/trunk/executables/ software_suite_v3/software/plugin/plugin-maxlight/trunk/executables/plugin-maxlight.py software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/en.po software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/en.wiki software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/es.po software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/es.wiki software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/fr.po software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/fr.wiki software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/help.wiki software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/nl.po software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/nl.wiki software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/plugin.png software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/plugin.pot software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/plugin.xml Log: * Added plugin-maxlight. Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/build.py =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/build.py (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/build.py 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2009 C2ME Sa +# Remi Jocaille <rem...@c2...> +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + +from builder.PluginPackager import PluginPackager + +if __name__ == "__main__": + PluginPackager().createScp("plugin-maxlight.scp") Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/PluginPackager.py =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/PluginPackager.py (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/PluginPackager.py 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- + +import version +__author__ = version.author +__date__ = version.date +__version__ = version.version +__licence__ = version.licence +del version + +# Copyleft (C) 2009 C2ME Sa +# Remi Jocaille <rem...@c2...> +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + +import os +from zipfile import * + +from util.misc.DirectoriesAndFilesTools import * + +# ------------------------------------------------------------------------------ +# Class to create a SCP file from the main directory of a python plugin project. +# ------------------------------------------------------------------------------ +class PluginPackager(object): + """Class to create a SCP file from the main directory of a python plugin + project. + """ + + # -------------------------------------------------------------------------- + # Create a scp file. + # -------------------------------------------------------------------------- + def createScp(self, scpFileName): + """Create a scp file. + @param scpFileName: Smart-Core Plugin file name. + @return: The success of the file creation. + """ + self.__sourcePath = os.path.realpath("") + if not os.path.isdir(self.__sourcePath): + return False + if not os.path.isdir(os.path.join(self.__sourcePath, "executables")): + return False + if not os.path.isdir(os.path.join(self.__sourcePath, "resources")): + return False + # Get some paths + SRC_EXECUTABLES_PATH = os.path.join(self.__sourcePath, "executables") + SRC_RESOURCES_PATH = os.path.join(self.__sourcePath, "resources") + TMP_BUILD_PATH = os.path.join(self.__sourcePath, "tmp") + DEST_EXECUTABLES_PATH = os.path.join(TMP_BUILD_PATH, "executables") + DEST_RESOURCES_PATH = os.path.join(TMP_BUILD_PATH, "resources") + DEST_SCP_FILENAME = os.path.join(self.__sourcePath, scpFileName) + # Create the temporary build path + MKDirsF(TMP_BUILD_PATH) + # Copy "executables" directory + CPDir(SRC_EXECUTABLES_PATH, DEST_EXECUTABLES_PATH) + # Copy "resources" directory + CPDir(SRC_RESOURCES_PATH, DEST_RESOURCES_PATH) + # Filtering the content of temporary path + RMWithFilters(TMP_BUILD_PATH, filters = ['.svn', '.pyc']) + # Create a zip file + directory = TMP_BUILD_PATH + last_cwd = os.getcwd() + os.chdir(TMP_BUILD_PATH) + zf = ZipFile(DEST_SCP_FILENAME, 'w', compression = ZIP_DEFLATED) + def walker(zip, directory, files, root = directory): + for file in files: + file = os.path.join(directory, file) + name = file[len(TMP_BUILD_PATH) + 1:] + if os.path.isfile(file): + zip.write(file, name, ZIP_DEFLATED) + elif os.path.isdir(file): + file = os.path.join(file, "") + name = os.path.join(name, "") + zip.writestr(name, name) + os.path.walk(TMP_BUILD_PATH, walker, zf) + zf.close() + os.chdir(os.path.abspath(last_cwd)) + # Remove the temporary directory + RMDirs(TMP_BUILD_PATH) + return True Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/__init__.py =================================================================== Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/__init__.py =================================================================== Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/misc/DirectoriesAndFilesTools.py =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/misc/DirectoriesAndFilesTools.py (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/misc/DirectoriesAndFilesTools.py 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,161 @@ +# -*- coding: utf-8 -*- + +import version +__author__ = version.author +__date__ = version.date +__version__ = version.version +__licence__ = version.licence +del version + +# Copyleft (C) 2008 Acness World +# Remi Jocaille <rem...@c2...> +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + +import os +import shutil + +if os.name == 'nt': + import win32con + import win32file + +# ============================================================================== +# Public functions +# ============================================================================== + +# ------------------------------------------------------------------------------ +# Force to create a directories tree if not exists. +# ------------------------------------------------------------------------------ +def MKDirs(path): + """Force to create a directories tree if not exists. + @param path: Directory path. + """ + if not os.path.isdir(path): + try: + os.makedirs(path) + except: + pass + +# ------------------------------------------------------------------------------ +# Force to create a directories tree after having deleted the old one. +# ------------------------------------------------------------------------------ +def MKDirsF(path): + """Force to create a directories tree after having deleted the old one. + @param path: Directory path. + """ + if os.path.isdir(path): + RMDirs(path) + os.makedirs(path) + +# ------------------------------------------------------------------------------ +# Remove directories and files recursively. +# ------------------------------------------------------------------------------ +def RMDirs(path): + """Remove directories and files recursively. + @param path: Path of the base directory. + """ + if not os.path.isdir(path): + return + for root, dirs, files in os.walk(path, topdown = False): + for d in dirs: + try: + os.removedirs(os.path.join(root, d)) + except: + pass + for f in files: + try: + if os.name == 'nt': + win32file.SetFileAttributesW(os.path.join(root, f), + win32con.FILE_ATTRIBUTE_NORMAL) + os.remove(os.path.join(root, f)) + except: + pass + if os.path.isdir(path): + try: + os.removedirs(path) + except: + pass + +# ------------------------------------------------------------------------------ +# Remove directories and files recursively with filters. +# ------------------------------------------------------------------------------ +def RMWithFilters(path, filters = ['.pyc', '.pyo']): + """Remove directories and files recursively with filters. + @param path: Path of the base directory. + @param filters: Filters as list. + """ + def checkFilter(name): + for filter in filters: + if name.lower().find(filter.lower()) == (len(name) - len(filter)): + return True + return False + + if not os.path.isdir(path): + return + + for root, dirs, files in os.walk(path, topdown = False): + for d in dirs: + if checkFilter(os.path.join(root, d)): + try: + RMDirs(os.path.join(root, d)) + except: + pass + for f in files: + if checkFilter(os.path.join(root, f)): + try: + if os.name == 'nt': + win32file.SetFileAttributesW(os.path.join(root, f), + win32con.FILE_ATTRIBUTE_NORMAL) + os.remove(os.path.join(root, f)) + except: + pass + +# ------------------------------------------------------------------------------ +# Remove a file. +# ------------------------------------------------------------------------------ +def RMFile(path): + """Remove a file. + @param path: File path. + """ + if os.path.isfile(path): + try: + if os.name == 'nt': + win32file.SetFileAttributesW(path, + win32con.FILE_ATTRIBUTE_NORMAL) + os.remove(path) + except: + pass + +# ------------------------------------------------------------------------------ +# Copy a directories tree to another directory. +# ------------------------------------------------------------------------------ +def CPDir(src, dest): + """Copy a directories tree to another directory. + @param src: Source path. + @param dest: Destination path. + """ + if not os.path.isdir(src): + return + if os.path.isdir(dest): + RMDirs(dest) + shutil.copytree(src, dest) + +# ------------------------------------------------------------------------------ +# Retrieve the OS temporary directory. +# ------------------------------------------------------------------------------ +def GetOSTMPDir(): + """Retrieve the OS temporary directory. + @return: The OS temporary directory. + """ + result = None + # On Windows + if os.name == 'nt': + result = os.environ.get('tmp') + if result == None: + result = os.environ.get('temp') + if result == None: + result = "c:\\windows\\temp" + # On linux + else: + result = "/tmp" + return result Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/misc/__init__.py =================================================================== Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/misc/version.py =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/misc/version.py (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/util/misc/version.py 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +"""Version data for tuxisalive.lib.Util""" + +__author__ = "Remi Jocaille (rem...@c2...)" + +# Copyleft (C) 2008 C2ME Sa +# Remi Jocaille <rem...@c2...> +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + +name = 'util.misc' +version = '0.0.1' +author = "Remi Jocaille (rem...@c2...)" + +description = "Utilities libraries." + +licence = "GPL" +date = "December 2008" Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/version.py =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/version.py (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/builder/version.py 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,9 @@ +# Copyleft (C) 2009 C2ME Sa +# Remi Jocaille <rem...@c2...> +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + +version = '2.0' +author = "Jerome Conan (jer...@ky...)" +licence = "GPL" +date = "2009" Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/executables/plugin-maxlight.py =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/executables/plugin-maxlight.py (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/executables/plugin-maxlight.py 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,207 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2009 Kysoh Sa +# Eric Lescaudron AKA Gwadavel http://gwadaself.tux.free.fr +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + +__author__ = "Gwadavel" +__appname__ = "Python plugin skeleton" +__version__ = "2.0" +__date__ = "2009/05/05" +__license__ = "GPL" + +import os +import sys + +import locale +import gettext +from tuxisalive.api import * +from time import sleep, time +import threading + +sys.path.append(os.environ['TUXDROID_SERVER_PYTHON_UTIL']) + +from util.SimplePlugin.SimplePluginConfiguration import SimplePluginConfiguration +from util.SimplePlugin.SimplePlugin import SimplePlugin + + +class Light(object): + """ + Manage the light research. + """ + + tgp_language = "en" + tgp_ip = "127.0.0.1" + tgp_port = 270 + tux = TuxAPI("127.0.0.1", 270) + + def __init__(self, plug): + ''' + ''' + self.plugin = plug + + + + def tuxConnect(self): + ''' + Wait connected + ''' + + self.tux.server.autoConnect(CLIENT_LEVEL_RESTRICTED, 'TuxMaxLight', 'plugin-maxlight') + self.tux.server.waitConnected(5.0) + self.tux.dongle.waitConnected(5.0) + self.tux.radio.waitConnected(5.0) + return self.tux.access.waitAcquire(5.0, ACCESS_PRIORITY_NORMAL) + + + def startSpinning(self): + ''' + Start tux spinning. + ''' + self.tux.spinning.leftOn(4.0, speed = SPV_SLOW); + + + + def search(self): + ''' + Search maximum light + ''' + + l_max = 0 # Light Max + + # Turn on left 2 turns, asynchrone mode + thread = threading.Thread(target = self.startSpinning, args = []) + thread.start() + + # wait Tux began to turn + sleep(1.5) + + isTurning = self.tux.status.requestOne(ST_NAME_SPIN_LEFT_MOTOR_ON)[0] + + mutex = threading.Lock() + + while isTurning == "True": + + mutex.acquire() + isTurning = self.tux.status.requestOne(ST_NAME_SPIN_LEFT_MOTOR_ON)[0] + + lum = self.tux.light.getLevel() # Light + sleep(0.1) + + if lum > l_max: # Light Max ? + l_max = lum // 1 + + mutex.release() + + return l_max # Return Light Max + + + + def stopSearch(self, l_stop, currentTime): + ''' + Tux stop when it finds light up Modified by ks156 who wrote light + monitor gadget for TuxDroid V1 Tux turn a little, wait and turn while light < light max + ''' + brk = False + l_stop = l_stop - 4.0 #Because of Windblows. + while 1: + + self.tux.spinning.leftOnDuring(0.1, speed=SPV_VERYSLOW) + sleep(1.5) + lum = self.tux.light.getLevel() + + + if lum >= l_stop: + self.tux.spinning.off() + break + + + if (int(time()) - currentTime) >= 30: + plugin.throwMessage("Sorry I'm not sure where the most of the light is coming from") + self.tux.spinning.off() + brk = True + break + + + if not brk: + plugin.throwMessage("I think most of the light is coming from this direction.") + + + def startAll(self): + ''' + ''' + + if "tgp_language" in os.environ: + self.tgp_language = os.environ["tgp_language"] + + # Test if tgp_ip and tgp_port exist + if "tgp_ip" in os.environ: + self.tgp_ip = os.environ["tgp_ip"] + + if "tgp_port" in os.environ: + self.tgp_port = int(os.environ["tgp_port"]) + + tux = TuxAPI(self.tgp_ip, self.tgp_port) + + if self.tuxConnect(): + + if not self.tux.radio.getConnected(): + plugin.throwMessage("I can't find my fish. Please, make sure I'm connected.") + + # Test if charger are plugged + elif not ( self.tux.status.requestOne('charger_state')[0] == 'UNPLUGGED' ) : + plugin.throwMessage("Unplug my charger first and try again.") + else: + plugin.throwMessage("Looking for the brightest light source") + self.tux.eyes.open() + self.tux.flippers.up() + light = self.search() # search light up + self.stopSearch(light, int(time())) # stop + self.tux.flippers.down() + + self.tux.access.release() + self.tux.server.disconnect() + self.tux.destroy() + + + +class MaxlightPlugin(SimplePlugin): + """This class override the SimplePlugin class to make easy + the plugin coding. + """ + + def __init__(self): + """Initialization of the class. + """ + # Call the super class + SimplePlugin.__init__(self) + self.slight = Light(self) + + def start(self): + """Plugin entry point. + This method should be used to dispatch commands. + """ + self.run() + + + def run(self): + """Plugin entry point for the "run" command. + """ + self.slight.startAll() + + def onPluginStop(self): + """Callback on plugin stop. + """ + pass + + def onPluginEvent(self, eventName, eventValues): + """Callback on plugin event. + @param eventName: Event name. + @param eventValues: Event values. + """ + pass + +if __name__ == "__main__": + plugin = MaxlightPlugin() + plugin.boot(sys.argv[1:], SimplePluginConfiguration()) Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/en.po =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/en.po (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/en.po 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,25 @@ + +msgid "" +msgstr "Project-Id-Version: PACKAGE VERSION\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2009-05-12 11:58+0200\nPO-Revision-Date: 2009-05-12 11:59+0200\nLast-Translator: jerome <jer...@ky...>\nLanguage-Team: LANGUAGE <LL...@li...>\nLanguage: en\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nPlural-Forms: nplurals=2; plural=(n != 1);\nX-Generator: Pootle 1.2.1\n" + +msgid "Max Light Plugin" +msgstr "Max Light Plugin" + +msgid "The Max Light plugin will make Tux Droid rotate towards the direction of the brightest light source." +msgstr "The Max Light plugin will make Tux Droid rotate towards the direction of the brightest light source." + +msgid "I think most of the light is coming from this direction." +msgstr "I think most of the light is coming from this direction." + +msgid "Unplug my charger first and try again." +msgstr "Unplug my charger first and try again." + +msgid "Sorry, I'm not sure where the light is coming from" +msgstr "Sorry, I'm not sure where the light is coming from" + +msgid "I can't find my fish. Please, make sure I'm connected." +msgstr "I can't find my fish. Please, make sure I'm connected." + +msgid "Looking for the brightest light source" +msgstr "Looking for the brightest light source" + Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/en.wiki =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/en.wiki (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/en.wiki 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,3 @@ +== Synopsis == +The Max Light plugin will make Tux Droid rotate towards the brightest light source. +Also, make sure to unplug the charger so Tux Droid can spin while searching for the light source. \ No newline at end of file Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/es.po =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/es.po (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/es.po 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,25 @@ + +msgid "" +msgstr "Project-Id-Version: PACKAGE VERSION\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2009-05-12 11:58+0200\nPO-Revision-Date: 2009-05-14 14:46+0200\nLast-Translator: jerome <jer...@ky...>\nLanguage-Team: LANGUAGE <LL...@li...>\nLanguage: es\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nPlural-Forms: nplurals=2; plural=(n != 1);\nX-Generator: Pootle 1.2.1\n" + +msgid "Max Light Plugin" +msgstr "Plugin Luz Maxima" + +msgid "The Max Light plugin will make Tux Droid rotate towards the direction of the brightest light source." +msgstr "El plugin de Luz Maxima hara que Tux Droid gire en la direccion desde se encuentre la fuente de luz mas brillante." + +msgid "I think most of the light is coming from this direction." +msgstr "Creo que la fuente de luz mas brillante viene de esta dirección." + +msgid "Unplug my charger first and try again." +msgstr "Desconecte primero mi cargador e intentelo de nuevo." + +msgid "Sorry, I'm not sure where the light is coming from" +msgstr "Lo sentimos, no estoy seguro de que la luz proviene" + +msgid "I can't find my fish. Please, make sure I'm connected." +msgstr "" + +msgid "Looking for the brightest light source" +msgstr "Buscando la fuente de luz mas brillante." + Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/es.wiki =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/es.wiki (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/es.wiki 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,3 @@ +==Synopsis == +El gadget de Luz Maxima hará que Tux Droid gire hacia la fuente de luz mas brillante. +Asegurese tambien de desconectar el cargador para que Tux Droid pueda girar en busca de la fuente de luz. \ No newline at end of file Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/fr.po =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/fr.po (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/fr.po 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,25 @@ + +msgid "" +msgstr "Project-Id-Version: PACKAGE VERSION\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2009-05-12 11:58+0200\nPO-Revision-Date: 2009-05-12 12:04+0200\nLast-Translator: jerome <jer...@ky...>\nLanguage-Team: LANGUAGE <LL...@li...>\nLanguage: fr\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nPlural-Forms: nplurals=2; plural=(n > 1);\nX-Generator: Pootle 1.2.1\n" + +msgid "Max Light Plugin" +msgstr "Plugin lumière maximum" + +msgid "The Max Light plugin will make Tux Droid rotate towards the direction of the brightest light source." +msgstr "Le plugin maxlight fera tourner Tux Droid pour trouver l'endroit le plus lumineux." + +msgid "I think most of the light is coming from this direction." +msgstr "Je pense que l'endroit le plus lumineux est ici." + +msgid "Unplug my charger first and try again." +msgstr "Débranchez mon chargeur et essayez à nouveau." + +msgid "Sorry, I'm not sure where the light is coming from" +msgstr "Désolé, je n'arrive pas à déterminer d'où vient la lumière." + +msgid "I can't find my fish. Please, make sure I'm connected." +msgstr "Je ne trouve pas mon poisson, assurez vous que je soit connecté." + +msgid "Looking for the brightest light source" +msgstr "Je cherche l'endroit le plus lumineux." + Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/fr.wiki =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/fr.wiki (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/fr.wiki 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,3 @@ +==Synopsis== +Le gadget lumière maximum fait tourner Tux Droid pour trouver l'endroit le plus lumineux. +Assurez vous d'avoir déconnecté le chargeur pour que Tux Droid puisse tourner. \ No newline at end of file Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/help.wiki =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/help.wiki (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/help.wiki 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,3 @@ +== Synopsis == +The Max Light plugin will make Tux Droid rotate towards the brightest light source. +Also, make sure to unplug the charger so Tux Droid can spin while searching for the light source. Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/nl.po =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/nl.po (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/nl.po 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,25 @@ + +msgid "" +msgstr "Project-Id-Version: PACKAGE VERSION\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2009-05-12 11:58+0200\nPO-Revision-Date: 2009-05-12 15:40+0200\nLast-Translator: Sebastiaan Vanpoucke <se...@ky...>\nLanguage-Team: LANGUAGE <LL...@li...>\nLanguage: nl\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nPlural-Forms: nplurals=2; plural=(n != 1);\nX-Generator: Pootle 1.2.1\n" + +msgid "Max Light Plugin" +msgstr "Max Licht Plugin" + +msgid "The Max Light plugin will make Tux Droid rotate towards the direction of the brightest light source." +msgstr "De Max Light plugin zal Tux Droid laten draaien in de richting van de helderste lichtbron." + +msgid "I think most of the light is coming from this direction." +msgstr "Ik denk dat het licht uit deze richting komt." + +msgid "Unplug my charger first and try again." +msgstr "Koppel eerst de oplader los en probeer dan opnieuw." + +msgid "Sorry, I'm not sure where the light is coming from" +msgstr "Sorry, ik kan de lichtbron niet vinden" + +msgid "I can't find my fish. Please, make sure I'm connected." +msgstr "Ik kan mijn vis niet zien. Gelieve te controleren of de vis geconnecteerd is" + +msgid "Looking for the brightest light source" +msgstr "Ik ben nu aan het zoeken naar de helderste lichtbron." + Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/nl.wiki =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/nl.wiki (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/nl.wiki 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,3 @@ +==Synopsis== +De Max Light gadget zal Tux Droid laten draaien in de richting van de helderste lichtbron. +Vergeet niet de oplader los te koppelen zodat Tux Droid kan ronddraaien om de lichtbron te zoeken. \ No newline at end of file Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/plugin.png =================================================================== (Binary files differ) Property changes on: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/plugin.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/plugin.pot =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/plugin.pot (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/plugin.pot 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,21 @@ +msgid "Max Light Plugin" +msgstr "" + +msgid "The Max Light plugin will make Tux Droid rotate towards the direction of the brightest light source." +msgstr "" + +msgid "I think most of the light is coming from this direction." +msgstr "" + +msgid "Unplug my charger first and try again." +msgstr "" + +msgid "Sorry, I'm not sure where the light is coming from" +msgstr "" + +msgid "I can't find my fish. Please, make sure I'm connected." +msgstr "" + +msgid "Looking for the brightest light source" +msgstr "" + Added: software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/plugin.xml =================================================================== --- software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/plugin.xml (rev 0) +++ software_suite_v3/software/plugin/plugin-maxlight/trunk/resources/plugin.xml 2009-06-29 08:15:41 UTC (rev 4926) @@ -0,0 +1,24 @@ +<gadget> + <interpreter + kind="python"> + <executable>executables/plugin-maxlight.py</executable> + </interpreter> + <description> + <name>Max Light Plugin</name> + <description>The Max Light plugin will make Tux Droid rotate towards the direction of the brightest light source.</description> + <author>Eric Lescaudron</author> + <version>2.0</version> + <iconFile>resources/plugin.png</iconFile> + <executionMode>command</executionMode> + <uuid>c8a41dd3-ae21-4b1f-aea3-ba151bcbd903</uuid> + </description> + <parameters> + </parameters> + <commands> + <command + name="run" + description="Seeks maximum light" /> + </commands> + <tasks> + </tasks> +</gadget> |