Home

Uso de nano-x en el azbox

hperez

AZmod
Loco por OpenSPA
Fan de OpenSPA
10 Dic 2009
1.659
19
0
Me bajé el toolchain del azbox para poder compilar oscam, y ahora estoy mirando lo de nano-x. Lo he conseguido compilar también. Por lo que he visto en la documentación y algunos ejemplos parece que es muy laborioso programar algo con nano-x. Tienes que hacerlo todo desde cero, incluso dibujar los botones y cualquier cosa que aparezca en pantalla.

El caso es que he encontrado un ejemplo (OpenXCAS2.c) que crea un interfaz bastante parecido al que usa el azbox para los plug-ins (y para todo). Mirando el código fuente, realmente es un caos, todo está mezclado, se dibuja en un lado, se procesan las teclas en otro, y todo el código revuelto. Es un trabajo de chinos (y en este caso casi literalmente, porque creo que el firmware original fue escrito por coreanos). Si todo el código del firmware está escrito así, es para volverse loco, no me extraña que tenga tantos bugs, y que cada vez que sacan una versión nueva estropeen cosas que funcionaban.

Pues eso, la pregunta es... ¿todo el interfaz del azbox usa nano-x, todo lo que vemos en pantalla está hecho así?

Es que si es así, estoy pensando que igual no es complicado modificar oscam (la única camd con código fuente) para que muestre mensajes en pantalla como hace multicas.
 

potus

Usuario
Amigo OpenSPA
19 Sep 2009
37
1
0
xHperez:

Pues eso, la pregunta es... ¿todo el interfaz del azbox usa nano-x, todo lo que vemos en pantalla está hecho así?
Coincido contigo en lo de que el nano-X es un 'sindios', pero tambien te digo, por propia experiencia, que solo se le tiene que coger el 'puntito'. Te explico a 'grosso modo' la filosofia del mismo:

- Es un sistema grafico basado en un servidor, es decir, tu aplicacion ordenara al servidor, al nano-X, lo que ha de hacer y cuando lo ha de hacer, pero no COMO lo ha de hacer

- Es un sistema basado en eventos. Es por ello que servidor, el nano-X, le dira a tu aplicacion que es lo que sucede y tu aplicacion actuara en consecuencia. Asi, si se pulsa una tecla, en al Azbox principalmente del mando a distancia, el nano-X mandara a tu aplicacion un evento (GR_EVENT_TYPE_BUTTON_DOWN) y ella debera decidir que es lo que hace ante ese hecho (estrictamente hablando, el nano-X no envia el EVENT a tu aplicacion, sino a la cola de eventos, pero esto es casi transparente asi que no debemos preocuparnos mucho).

- Ademas, y para complicar un poco mas las cosas, en el AZBOX todo lo referente al aspecto grafico de los PLUGINS se ejecuta bajo un proceso del firm, por lo que todo esta 'tutelado' (te comento esto por lo expones en el otro hilo. Alli te lo explico mejor:okb:).

Vistas asi las cosas, la estructura de un plugin debera ser mas o menos asi:

1º) Inicializar el plugin
2º) Inicializar el servidor nano-X
3º) hacer lo que se tenga que hacer para que todo se muestre en pantalla
4º) esperar los eventos y actuar en cinsecuencia
5º) si tenemos que cerrar el plugin, devolver toda la memoria que hayamos usado (el nano-X se ocupa de lo suyo, no de lo del plugin). Asi, si hemos cargado imagenes o graficos, descargarlos. Si hemos habilitado memoria, devolverla, etc, etc.
6º) Cerrar el servidor e indicar al proceso del firm del Azbox que 'tutela' todo que hemos terminado

Siguiendo estas pautas y teniendo en mente la estructura de una programacion orientada a eventos, el trabajar con el nano-X se convierte en algo sencillo....o no:desmayo:

Por ultimo comentarte que para mi y hasta donde he llegado, creo que toda la interface grafica del firm del Azbox corre bajo nano-X. Ahora bien, los de Opensat deben de utilizar una API para ello que les hace la vida muy facil, aunque no tengo una total seguridad en esta afirmacion.....pero hay cosas que me hacen pensar que es asi....¿por que no se pueden mostrar dos banners simultaneos en pantalla con el firm?, ¿por que si estoy visionando el banner de info del canal y quiero ver la lista de canales, primero se cierra el banner de la info?


Salu2.