Documentos de Académico
Documentos de Profesional
Documentos de Cultura
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/286777303
CITATIONS READS
0 82
3 authors, including:
All content following this page was uploaded by Ivan Bernal on 13 December 2015.
Resumen: Este artculo presenta un plugin desarrollado para Composer NCL que permite utilizar el canal de
retorno para obtener informacin de un feed RSS. Tambin presenta una aplicacin interactiva desarrollada en
NCL, la cual est orientada a informar a los televidentes sobre el programa de Becas Universidades de
Excelencia que ofrece el Ecuador a sus ciudadanos. La aplicacin interactiva obtiene datos desde un feed RSS,
funcionalidad generada mediante el plugin desarrollado. Finalmente se presentan las pruebas realizadas tanto con
el plugin como con la aplicacin.
Palabras clave: Ginga, NCL, Canal de retorno, ISDB-Tb, feed RSS, Composer NCL, plugin.
Abstract: This article presents a plugin developed for NCL Composer that allows the use of the return channel to
obtain information from an RSS feed. It also presents an interactive application developed in NCL, which is
oriented to inform viewers about the program "Universities of Excellence Scholarship" offered by Ecuador to its
citizen. The interactive application gets data from an RSS feed, generated using the plugin developed. Finally it
presents some tests that were performed with both the plugin and the application.
Keywords: Ginga, NCL, Return Channel, ISDB-Tb, feed RSS, Composer NCL, plugin.
Cada vez que se inicia un nuevo documento, Composer NCL plugin denominado Textual View, se deber pasar en el
trata de crear una nueva instancia del plugin mediante la argumento la siguiente cadena de texto: br.puc-
llamada al mtodo de IPluginFactory denominado rio.telemidia.NCLTextualView. Estos mtodos deben ser
createPluginInstance(). llamados cuando se requiera agregar un elemento o proveer
informacin del plugin mediante el uso del mecanismo de
3.3.2 IPlugin signal y slots.
IPlugin es el responsable de comunicarse directamente con el 3.3.4 Archivo NCL generado por el plugin
ncleo de Composer NCL y de interactuar con los dems
plugins. Cuando se crea un documento de Composer NCL, se Cuando se ejecute el plugin, se generar un archivo NCL el
requiere una nueva instancia del plugin. IPlugin est cual contendr un elemento media asociado al body de la
vinculado con la instancia del documento y ser llamado cada estructura NCL de dicho archivo, adems de esto el plugin
vez que haya cambios en cualquier plugin de Composer NCL. generar un elemento rea, con las dimensiones establecidas
De esta forma, IPlugin tambin es capaz de exigir cambios en la interfaz de usuario. Esta rea se utilizar con el
en el documento. descriptor del elemento media para especificar en qu parte
de la pantalla se presentar la informacin obtenido del
3.3.3 Signals y Slots plugin. Por ltimo se escoge cundo se presentar la
informacin del feed RSS en la aplicacin, para lo cual se
Qt define una forma dinmica de comunicar eventos con los deben agregar los conectores en el body del archivo NCL. Es
cambios de estado que estos pueden provocar y las reacciones posible que varios de los conectores requieran de otros
de los mismos denominada Signals y Slots [15]. Lo original elementos media para interactuar entre ellos, por lo que no es
de este mecanismo es que los objetos que se comunican posible automatizar todos los conectores, por lo que el
dinmicamente, no requieren conocerse mutuamente. Para usuario deber especificar ciertas propiedades de forma
ello QObject, la clase base de gran parte de los objetos que manual. El plugin verifico la exista del archivo con los
conforman Qt incorpora un mtodo llamado connect(), que se conectores base, en caso de que no exista, el plugin crear el
encarga de establecer dicha comunicacin entre dos objetos. archivo con dichos conectores. La lista de conectores base
Todo objeto derivado de QObject puede poseer dos tipos de est filtrada para que solo se presenten los conectores que
funciones propias especiales: signals y slots. Signals son tengan en sus elementos la palabra start, ya que con este
funciones que permiten emitir una seal cuando hay algn elemento se puede indicar cundo se deber presentar
cambio de estado en el objeto al que pertenecen. Slots son (iniciar) la informacin del feed RSS.
funciones que finalizan la conexin y que ejecutan una serie
de acciones una vez que reciben el mensaje de la seal. Una 3.3.5 Resultado del plugin
seal puede conectarse a ms de un slot para llevar a cabo
diferentes tipos de actividades. Igualmente diferentes seales El plugin fue integrado exitosamente en Composer NCL
pueden conectarse con un mismo slot que posee una actividad como se observa en la Fig. 7. En la Fig. 8 se presenta una
que puede ser desplegada de varias formas. aplicacin NCL que muestra la informacin obtenida del feed
RSS de la Escuela Politecnica Nacional.
3.3.4 Ncleo de Composer NCL
4. APLICACIN INTERACTIVA BECAS Adems el elemento start tiene un parmetro bindParam que
UNIVERSIDADES DE EXCELENCIA permite especificar el tiempo de retardo, es decir permite
definir que el elemento media asociado al start se presente
4.1 Anlisis de requerimientos luego de un tiempo especificado posterior a la presentacin
del elemento media asociado a onBegin. En la Fig. 10 se
Para la realizacin de la aplicacin se tom en cuenta una observa el cdigo de onBeginStart_delay implementado.
serie de preguntas que usualmente las personas realizan sobre Como se mencion antes, la aplicacin debe redimensionar el
las becas, estas son: Qu estudiar?, Qu rubros cubre la video. El redimensionamiento se lo consigue definiendo la
beca?, Las becas son rembolsables?, Requisitos, Cmo propiedad bounds (lmites) del elemento media. Para indicar
postular? y Qu documentos se requieren para postular cundo se debe dimensionar el video, se utiliz el conector
(documentos habilitantes)? La aplicacin busca responder a onKeySelectionSet. Este conector permite indicar que en el
estas inquietudes de forma breve y concisa, debido que hay momento en que se presenta un elemento media y se presiona
que considerar que el televidente usualmente mira la un botn especfico del control remoto (onKeySelection), el
televisin mientras descansa, por lo que no debe conector se activa y presenta otro elemento media, el cual
sobrecargrsele de informacin. Tambin se tom en cuenta puede cambiar su posicin y su tamao (set). Este conector
que el programa no debe bloquear la programacin habitual, contiene dos elementos bind: onSelection y set. Mediante
por lo que se redimensionar el video guardando la relacin onSelection se indican las condiciones que deben cumplirse
de aspecto de 16:9. Por otro lado, es importante la para iniciar este conector, siendo estas: el elemento media
distribucin de colores pues brinda un nivel esttico al que debe estar seleccionado (especificado mediante el
programa que debe llamar la atencin del televidente. elemento component) y el botn que debe presionarse
(especificada mediante el parmetro bindParam). Mediante
4.2 Desarrollo set se indica que se cambiar la posicin o el tamao del
elemento media definido por component, para esto se emplea
En la Fig. 9 se presenta la distribucin en la pantalla, la interfaz bounds del elemento media, y mediante el
generada por el plugin Layout View con los elementos media parmetro bindParam, se especifica su nueva ubicacin y sus
que intervienen en la aplicacin, estos elementos son dimensiones usando una cadena con cuatro valores:
imgenes con la informacin que se desea presentar. izquierda, parte superior, ancho, altura especificados como
El archivo NCL que contiene el cdigo de la aplicacin porcentajes o como pxeles. Al presionar el botn OK, la
dispone de un body con un port que est asociado con un aplicacin proceder a cambiar la posicin y el tamao del
elemento media llamado video, el cual permitir presentar la elemento video. En la Fig. 11 se observa el cdigo del
seal de la programacin recibida por el STB, para esto se conector onKeySelecionSet implementado.
necesita establecer en el elemento mencionado la propiedad Para mejorar la organizacin de los elementos que van a
src con la cadena sbtvd-ts://0. Para presentar el icono de interactuar en la aplicacin se cre un context llamado
interactividad en la aplicacin se agreg un conector ctxBecas. Para conectar el elemento mInteractividad con
onBeginStart_delay. Este conector permite asociar la ctxBecas se utiliz el conector onKeySelectionStopStart.
presentacin de un elemento en particular con un retardo Este conector permite que en el momento en que se presenta
(Start_delay), con la presentacin de otro elemento un elemento media y se presiona un botn del control remoto
(onBegin), para lo cual utilizar dos elementos bind: onBegin (onKeySelection), el conector se activa y oculta un elemento
y start. Mediante onBegin que estar asociado con un media (stop) y despus presenta otro elemento media (start).
elemento media, se iniciar el conector al ser presentado
dicho elemento, produciendo las acciones definidas por el
segundo elemento bind. La accin definida mediante start,
que tambin estar asociada con un elemento media, permite
indicar que elemento iniciar (o se presentar en pantalla).
REFERENCIAS
[1] ABNT NBR 15606-2, Documento electrnico
http://www.abnt.org.br/imagens/Normalizacao_TV_Digital/ABNTNB
R15606-2_2007Ing_2008.pdf
[2] ABNT NBR 15607-1, Documento electrnico
http://www.abnt.org.br/imagens/Normalizacao_TV_Digital/ABNTNB
R15607-1_2008Ed1.pdf
[3] Blanchette, Jasmin. "C++ GUI Programming with Qt 4". 2006.
[4] Composer NCL. http://Composer.telemidia.puc-rio.br.
[5] Comunidad Ginga Ecuador. http://comunidadgingaec.blogspot.com.
[6] EiTV Developer Box. http://www.eitv.com.br/devbox_es.php.
[7] GINGA NCL.
http://www.softwarepublico.gov.br/dotlrn/clubs/ginga/gingancl/xowiki
/gingancl_vm.
[8] Ginga4Windows. http://Composer.telemidia.puc-
rio.br/en/news/ginga4windows_0.13.1_released.
[9] Gomes Soares, Luiz. Part 1 NCM Core. Documento electrnico
http://www.telemidia.puc-rio.br/sites/telemidia.puc-
rio.br/files/Part1%20-%20NCM%203.0.pdf
[10] Lerusalimschy, Roberto. "Programming in Lua". 2006.
[11] Moreira Gomes, Johnny. "Utilizando o Lua Xml Parser para leitura
simples de arquivos xml em aplicaes NCL/Lua"