[Ginga-argentina] Interaccion con LUA y NCL

Nicolas Ignacio Roldan niko_cbes at hotmail.com
Fri Apr 13 21:21:41 CEST 2012


Muchisimas Gracias de nuevo Leo!
Lo pruebo ya! 
saludos!
nico

Date: Fri, 13 Apr 2012 16:14:13 -0300
From: lisasmendi at lifia.info.unlp.edu.ar
To: ginga-argentina at lists.ourproject.org
Subject: Re: [Ginga-argentina] Interaccion con LUA y NCL

Recién tengo un poco de tiempo. 
Te hago una pequeña explicación: El service.currentKeyMaster es una variable de sistema que indica sobre que media se están enviando los evento de tecla. 
 Este valor está asociado a un descriptor sobre el cual vos estás mostrando un media.
 Entonces, cuando en tu código definís lo siguiente:    <media id="foco" type="application/x-ginga-settings">

              <property name="service.currentKeyMaster" value="appFocus"/>
        </media>
Le estás indicando al sistema que apunte los eventos de tecla a el media que tenga un descriptor con ese mismo focusIndex.

Ahora si ese media se detiene, y no hay otro media usando ese descriptor, el valor del service.currentKeyMaster pasa a modificarse por otro valor.Es por eso que te indique que modifiques ese mismo valor cada vez que inicies ese media, es un parche. Sería mejor que ese media lua no se pare. Porque tiene un costo en cuanto performance. 
Otra cosa más, cuando uno detiene un media Lua, los valores de las variables internas a ese media se pierden.
Para modificar el service.currentKeyMaster deberías definir un causalConnector para modificar esa variable y con eso alcanza.





El 13 de abril de 2012 12:11, Nicolas Ignacio Roldan <niko_cbes at hotmail.com> escribió:






¿Alguien podria mas o menos orientarme en esta duda? 
saludos!
nico


From: niko_cbes at hotmail.com
To: ginga-argentina at lists.ourproject.org

Date: Thu, 12 Apr 2012 21:08:04 +0000
Subject: Re: [Ginga-argentina] Interaccion con LUA y NCL







Hola Leo!
Muchas gracias por la respuesta! sos el que siempre esta  
... no entendi, ó mejor dicho nose cómo ó donde hacer eso que decis vos ["proba volviendo a modificar el valor de la variable 
"service.currentKeyMaster"  con el valor de "appFocus" cada vez que inicias el main.lua"]

De hecho nose bien cómo funciona el  "service.currentKeyMaster"   En el documento ABNTNBR15606 dice

["Identificador  (id) del elemento 
<media> que detenta el control de 
las claves de navegación; si el 
elemento no está siendo  
presentado o no está pausado, el 
control es del formateador "]

... mucho mucho todavia no me doy cuenta para que esta.

Perdon mi ignorancia
Saludos Leo!
nico


Date: Wed, 11 Apr 2012 18:56:03 -0300

From: lisasmendi at lifia.info.unlp.edu.ar
To: ginga-argentina at lists.ourproject.org

Subject: Re: [Ginga-argentina] Interaccion con LUA y NCL

Hola nico, proba volviendo a modificar el valor de la variable 
"service.currentKeyMaster"  con el valor de "appFocus" cada vez que inicias el main.lua.
El 11 de abril de 2012 15:31, Nicolas Ignacio Roldan <niko_cbes at hotmail.com> escribió:






Buenas Gente de Ginga!

Es una consulta con respecto a LUA y su tratamiento.
Mi objetivo es lograr que  cuando presiono el boton "INFO" se muestre una <media > que se carga desde un archivo ".lua"( en donde mostraria infomacion de acuerdo a la tecla que se presione [roja,amarillo,etc]);  luego si presiono el boton "MENU" vuelva a la pantalla anterior. y asi sucesivamente... la iteracion con el usuario seria  que presione "INFO" y "MENU", asi a cada rato.


bueno.... la primera vez anda bien, presiono "INFO" y me aparece la informacion que carga desde "main.lua" y puedo presionar el "ROJO","AMARILLO","VERDE" y "AZUL" para que me muestre la informacion ... Pero si presiono "MENU" (para regresar) y luego de nuevo "INFO"... ya no me muestra ni me permite la interaccion con el "main.lua"




Tengo el siguiente codigo (Trabajo con 3 archivos : main.ncl/metodos.ncl/main.lua)




------------- el main.ncl ----------------------------



<?xml version="1.0" encoding="ISO-8859-1"?>
<ncl id="main" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">



    <head>
        <regionBase>
            <region id="scriptLua" width="50%" height="80%" left="0%" top="0%" zIndex="3" />


            <region id="idBotonInfo" right="2%" bottom="2%" width="50" height="50" zIndex="3"  />
            <region id="idBotonReturn" right="2%" bottom="2%"  width="50" height="50" zIndex="3"  />


         </regionBase>
        

        <descriptorBase>
        
            <descriptor id="descLua" region="scriptLua" focusIndex="appFocus"/>

            <descriptor id="descImagenInfo" region="idBotonInfo"/>

            <descriptor id="descImagenReturn" region="idBotonReturn" />        
                     
        </descriptorBase>
        

        <connectorBase>
            <importBase documentURI="metodos.ncl" alias="metodo"/>


        </connectorBase>
    
    </head>


    <body>        
        
        <port id="pInfo" component="imgBotonInfo"/>
        
        <media id="foco" type="application/x-ginga-settings">


            <property name="service.currentKeyMaster" value="appFocus"/>
        </media>
        
        <media id="LuaPresentation" src="lua/main.lua" descriptor="descLua" />


        <media id="imgBotonInfo" src="Imagen/info.png" descriptor="descImagenInfo"/>
        <media id="imgBotonReturn" src="Imagen/menu.png" descriptor="descImagenReturn"/>


   
        
        <link xconnector="metodo#onBeginEndMenu">
            <bind role="onSelection" component="imgBotonInfo">
                <bindParam name="oSetTecla" value="INFO"/>


            </bind>
            <bind role="abort" component="imgBotonInfo"/>
            <bind role="start" component="LuaPresentation"/>
        </link>


        <link xconnector="metodo#onBeginEndMenu">
            <bind role="onSelection" component="imgBotonReturn">
                <bindParam name="oSetTecla" value="MENU"/>


            </bind>
            <bind role="start" component="imgBotonInfo"/>
            <bind role="abort" component="LuaPresentation"/>
        </link>


      
    </body>
</ncl>

-------------------------------------------------------------------------------------------------


------------------ metodos.ncl--------------------------------------



<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Generated by NCL Eclipse -->
<ncl id="metodos" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">


    <head>
        <connectorBase>
            
                <causalConnector id="onBeginStart">
                    <simpleCondition role="onBegin" />
                    <simpleAction role="start"/>


                </causalConnector>
                
                <causalConnector id="onEndStop">
                    <simpleCondition role="onEnd"/>
                    <simpleAction role="stop"/>


                </causalConnector>
                   
                <causalConnector id="onBeginEndMenu">
                    <connectorParam name="oSetTecla"/>
                    <simpleCondition role="onSelection" key="$oSetTecla"/>


                    <compoundAction operator="seq">
                        <simpleAction role="start" qualifier="seq"  max="unbounded"/>
                        <simpleAction role="abort" qualifier="seq"  max="unbounded"/>


                    </compoundAction>
                </causalConnector>


        </connectorBase>
    </head>
    <body>

    </body>
</ncl>
------------------------------------------------------------------------------------------------



------------------------- main.lua ----------------------------------

function handler(evt)

local titulo=''
local color=''

limpiar()



if evt.class=='key' and evt.type=='press' then 
        
        if     evt.key == 'RED' or evt.key == 'F1' then      
            titulo='PILOTOS'
            color='red'    


            leyendaTitulo(color,titulo)          
        elseif evt.key == 'BLUE' or evt.key=='F4' then
             titulo='PISTA'
             color='blue'  
             leyendaTitulo(color,titulo)


        elseif evt.key == 'YELLOW' or evt.key=='F3' then
              titulo='INFORMACION'
              color='yellow'  
              leyendaTitulo(color,titulo)
        elseif evt.key == 'GREEN' or evt.key=='F2' then 


              titulo='CLIMA'
              color='green'        
              leyendaTitulo(color,titulo)
        end 
    end    
end


function leyendaTitulo(color,titulo)
    


    canvas:attrColor(color)
    canvas:attrFont('vera',30, 'bold')
    canvas:drawText(10, 10, titulo)
    canvas:flush()    
    
end


function limpiar()
    
    local leyendaTitulo=canvas:new('Imagen/FondoAzulDegradadoCentro.png')


    canvas:compose(0,0,leyendaTitulo)
    
end

event.register(handler)
---------------------------------------------------------------------------------------


Espero que no sea una consulta engorrosa... estoy seguro que es algo que no estoy haciendo bien


Desde ya muchas Gracias!
saludos
nico
 		 	   		  

__________________________________________Lista de correo Ginga-argentina at lists.ourproject.org

cambiar suscripción: https://lists.ourproject.org/cgi-bin/mailman/listinfo/ginga-argentina

Sitio web: http://comunidad.ginga.org.ar

Wiki: http://wiki.ginga.org.ar




-- 
Saludos leo



__________________________________________Lista de correo Ginga-argentina at lists.ourproject.org
cambiar suscripción: https://lists.ourproject.org/cgi-bin/mailman/listinfo/ginga-argentina
Sitio web: http://comunidad.ginga.org.ar
Wiki: http://wiki.ginga.org.ar 		 	   		  

__________________________________________Lista de correo Ginga-argentina at lists.ourproject.org
cambiar suscripción: https://lists.ourproject.org/cgi-bin/mailman/listinfo/ginga-argentina
Sitio web: http://comunidad.ginga.org.ar
Wiki: http://wiki.ginga.org.ar 		 	   		  

__________________________________________Lista de correo Ginga-argentina at lists.ourproject.org
cambiar suscripción: https://lists.ourproject.org/cgi-bin/mailman/listinfo/ginga-argentina
Sitio web: http://comunidad.ginga.org.ar
Wiki: http://wiki.ginga.org.ar 		 	   		  

__________________________________________Lista de correo Ginga-argentina at lists.ourproject.org

cambiar suscripción: https://lists.ourproject.org/cgi-bin/mailman/listinfo/ginga-argentina

Sitio web: http://comunidad.ginga.org.ar

Wiki: http://wiki.ginga.org.ar




-- 
Saludos leo



__________________________________________Lista de correo Ginga-argentina at lists.ourproject.org
cambiar suscripción: https://lists.ourproject.org/cgi-bin/mailman/listinfo/ginga-argentina
Sitio web: http://comunidad.ginga.org.ar
Wiki: http://wiki.ginga.org.ar 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.ourproject.org/pipermail/ginga-argentina/attachments/20120413/9277c2cc/attachment-0001.htm 


More information about the Ginga-argentina mailing list