[Ginga-argentina] Interaccion con LUA y NCL

leo lisasmendi at lifia.info.unlp.edu.ar
Fri Apr 13 21:14:13 CEST 2012


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? [image: Confundido]
> 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  [image: Guiño]
> ... 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" *[image:
> Confundido]  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[image: Confundido]
> 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-argentinaSitio 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-argentinaSitio 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-argentinaSitio 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.ourproject.org/pipermail/ginga-argentina/attachments/20120413/f26c5ddf/attachment-0001.htm 


More information about the Ginga-argentina mailing list