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 <[email protected]>
+#    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 <[email protected]>
+#    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 <[email protected]>
+#    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 ([email protected])"
+
+#    Copyleft (C) 2008 C2ME Sa
+#    Remi Jocaille <[email protected]>
+#    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 ([email protected])"
+
+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 <[email protected]>
+#    Distributed under the terms of the GNU General Public License
+#    http://www.gnu.org/copyleft/gpl.html
+
+version = '2.0'
+author = "Jerome Conan ([email protected])"
+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 <[email protected]>\nLanguage-Team: 
LANGUAGE <[email protected]>\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 <[email protected]>\nLanguage-Team: 
LANGUAGE <[email protected]>\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 <[email protected]>\nLanguage-Team: 
LANGUAGE <[email protected]>\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 
<[email protected]>\nLanguage-Team: LANGUAGE <[email protected]>\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>


------------------------------------------------------------------------------
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to