construÇÃo de programas interativos para tv digital usando ginga

128
CONSTRUÇÃO DE PROGRAMAS INTERATIVOS PARA TV DIGITAL USANDO GINGA Minicurso Básico III uiles Burlamaqui - UERN or Rosberg - UFRN ogo Henrique - UERN

Upload: zenia

Post on 23-Feb-2016

29 views

Category:

Documents


0 download

DESCRIPTION

Minicurso Básico III. CONSTRUÇÃO DE PROGRAMAS INTERATIVOS PARA TV DIGITAL USANDO GINGA. Aquiles Burlamaqui - UERN Igor Rosberg - UFRN Diogo Henrique - UERN. SUMÁRIO. Introdução a TV Digital Interativa Túnel do tempo O que muda? Middleware para a TVDI Sistema Americano - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

CONSTRUÇÃO DE PROGRAMAS INTERATIVOS PARA TV DIGITAL USANDO GINGA

Minicurso Básico III

Aquiles Burlamaqui - UERNIgor Rosberg - UFRNDiogo Henrique - UERN

Page 2: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

SUMÁRIO

Introdução a TV Digital Interativa Túnel do tempo O que muda?

Middleware para a TVDI Sistema Americano Sistema Europeu Sistema Japonês Sistema Brasileiro

Ginga Ginga-NCL

▪ NCL▪ Lua▪ XHTML

Ginga-J▪ JavaTV, HAVI▪ XletView

Mercado de TV Digital

Page 3: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Introdução a tv digital interativa

Conhecendo a TVDI

Page 4: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Túnel do TempoTecnologias

1950 1972 2007

2 de dezembro inicia-se a transmissão

da TVDI no BrasilSurgimento da TV no Brasil

19 de fevereiro chegaram as cores na

TV do brasileiro

Page 5: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Túnel do Tempo

1950

1964

1975

1985

1990

2000 ...

Fase ElitistaFase de

Globalização e da TV

Paga

Fase de desenvolvi

mento Tecnológico

Fase Populista

Fase da Convergênc

ia e da Qualidade

Digital

Fase de Expansão

Internacional

Fases da História da TV no Brasil

Page 6: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

O que muda? Imagem

HDTV Tela no formato 16:9 MPEG-4 Duas vezes melhor do que

qualidade de DVD Som

Qualidade melhor que CD Surround 5.1 HE-AAC (High Efficiency

Advanced Audio Coding) Sucessor do mp3 Utilizado no IPod, Playstation

3, Nintendo wii

Page 7: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

O que Muda?

MELHOR SOM

MELHOR IMAGEM

Analógica Digital

APLICAÇÕES

Page 8: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

O que muda? Mobilidade e

Portabilidade Multiprogramação

Diferentes programas, mesmo canal

Interatividade Compras pela TV Votar em

enquetes/pesquisas Acesso a serviços ...

Page 9: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

O que muda? Hardware

Display Set-top-box USB dongle 1-seg PSP e DS 1-seg Celulares 1-Seg

Page 10: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

O CanalLargura

6MHzAnalógico

Tudo para o vídeo e o áudio em resolução padrão▪ SDTV (4:3 = 640x480 / 16:9 = 704x480 )

Page 11: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

O CanalDigital

6 Mhz 29,162 Mbps

▪ LDTV ( 240x320)▪ HDTV(1920x 1080)

Page 12: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

MIDDLEWARE PARA A TVDIConhecendo a TVDI

Page 13: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Sistema de TV Digital Interativa Organização do Sistema de TV Digital

Interativa

Page 14: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Middleware Sistema

Americano Mais antigo, 1998 ATSC

▪ Foco na transmissão em HDTV

Middleware DASE

Sistema Europeu Utilizado em mais

de 15 países DVB

▪ Multiprogramação▪ Interatividade

Middleware MHP

Sistema Japonês Datando de 1999 ISDB

▪ Baseado no DVB▪ Mobilidade aliado

a alta definição Middleware ARIB

Sistema Brasileiro Início das

transmissões em 2007

SBTVD-T▪ HDTV▪ Multiprogramação▪ Interatividade▪ Mobilidade

Middleware GINGA

Page 15: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

GINGAConstruindo aplicações para a TVDI

Page 16: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Middleware Ginga

Page 17: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Áudio

Vídeo

Dados Datagramas IP MPEGÁudio

Vídeo

DadosCarrossel de Dados

MPEGHardware

Real-Time Operating System

Device Drivers

ITV Middleware (eg. MHP or DASE)

Conditional Access

Aplicação

Envio e execução de programas de TV Interativos

Page 18: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Middleware Ginga

Page 19: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA
Page 20: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Sobre o NCL

Linguagem declarativa;

Não define nenhum objeto de mídia em si;

Possui uma linguagem de script (LUA)

Page 21: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Sobre o NCL API NCL APIs XHTML

CSS DOM javascript

API NCL-LUA API NCL-JAVA

Page 22: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

API NCL - Linguagem NCL Estrutura

O que?▪ Nós de Mídia

Onde ?▪ Região da tela onde irá tocar

Como ?▪ Características como volume, transparência,

etc. Quando ?

▪ Em que momento ele irá tocar?

Page 23: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

O que ? Nós de Mídias

AUDIO VÌDEO

IMAGEM TEXTO

MEDIA

Page 24: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

O que ?

i.jpgreceita.html

CONTEXTO

CONTEXTO

MEDIA

VÌDEO

Page 25: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Onde ?

i.jpg

O que ? MEDIA

REGION

Page 26: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

i.jpg

Onde ?

O que ? MEDIA

REGION

Page 27: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

i.jpg

Onde ?

O que ? MEDIA

REGION

Page 28: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Como ?Onde ?O que ? MEDIA

REGION

DESCRIPTOR

AUDIO DESCRIPTOR

- VOLUME

Page 29: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Como ?Onde ?O que ? MEDIA

REGION

DESCRIPTOR

IMAGEM

Quando ?

CONNECTOR

CONNECTOR

OnSelect Start

LINK

LINK

Page 30: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Como ?Onde ?O que ? MEDIA

REGION

DESCRIPTOR

IMAGEM

Quando ?

CONNECTOR

CONNECTOR

OnSelect Start

LINK

LINK

Page 31: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Ambientes de execução

Há diversos ambientes de execução para a linguagem NCL

Entre os mais usados estão os desenvolvidos pela PUC-Rio, em JAVA e C++

Atualmente várias empresas privadas desenvolvem ambientes de execução, sendo que várias delas situam-se no nordeste

Page 32: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Fedora-fc7-ginga-i386

Page 33: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

WinSCP

Usado para acessar as pastas do SO Fedora-fc7-ginga-i386

Através dele são feitas as transferências de arquivos do Sistema Operacional em uso para a máquina virtual do Fedora

Page 34: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Putty

É um programa amplamente utilizado na realização de conexões remotas

Simula um ambiente de terminal de controle

Através dele serão executados os comandos necessários

Page 35: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Estrutura do Documento .ncl

Page 36: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Estrutura básica de um arquivo NCL Cabeçalho; Uma seção de cabeçalho do programa

(head) O corpo do programa (body) Uma porta que indica o ínico do programa Conclusão do documento;

Page 37: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Cabeçalho

<?xml version="1.0" encoding="ISO-8859-1"?>

<ncl id="exemplo01">

Page 38: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Seção de cabeçalho - HEAD Inicia com a tag <head> e termina

com a tag </head>

É na seção HEAD que se definem as regiões, os descritores, os conectores e as regras utilizadas pelo programa;

Page 39: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Seção HEAD – Base de Regiões Inicia com a tag <regionBase> e

termina com a tag </regionBase >

Na base de regiões, são definidas todas as regiões nas quais as mídias serão exibidas

Page 40: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplo de declaração de região

<regionBase><region id=“rgTela” left=“0” top=“0” width=“800” height=“600”>

<region id=“rgTopo” left=“10” top=“10” width=“780” height=“30”/> <region id=“rgVideo” left=“10” top=“50” width=“400” height=“250”/>

<region id=“rgDir” left=“420” top=“50” width=“150” height=“250”/></region>

</regionBase>

OBS: A região não define a associação com cada mídia particular. Essa associação é feita através dos

descritores.

Page 41: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Visão de leiautergTela: 0,0 (800,600px)

rgTopo: 10,10 (780,30px)

rgVideo: 10,50 (400,250px) rgDir: 420,50 (150,250px)

Page 42: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Seção HEAD – Base de Descritores Inicia com a tag <descriptorBase> e

termina com a tag </descriptorBase>

É através dos descritores que as mídias são associadas à uma determinada região;

Definem também a forma como a mídia será apresentada; EX: Volume, transparência etc.

Page 43: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplo de declaração de Descritor

<descriptorBase><descriptor id=“dVideo” region=“rgVideo”/>

</descriptorBase>

OBS: Ao se definir um descritor, é necessário definir a região à qual ele estará associado. Toda mídia que utilizar esse descritor estará associada à região corresponde.

Page 44: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Seção HEAD – Base de Conectores Inicia com a tag <connectorBase> e

termina com a tag </connectorBase>

Os conectores definem como os elos são ativados e o que eles disparam.

Em NCL existe apenas um tipo de conector: o conector causal.

Page 45: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplo de declaração de conectores<connectorBase>

<causalConnector id="onBeginAbortStart"><simpleCondition role="onBegin"/><compoundAction operator="seq">

<simpleAction role="abort" max="unbounded" qualifier="par"/>

<simpleAction role="start" max="unbounded" qualifier="par"/> </compoundAction></causalConnector><causalConnector id="onBeginStart">

<simpleCondition role="onBegin"/> <simpleAction role="start"/>

</causalConnector></connectorBase >

Page 46: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplo de declaração de conectores Uma forma de tornar prática a

reutilização de conectores é defini-los em um arquivo externo semelhante a um .css agrupando assim dezenas de conectores prontos para o uso.

Exemplo:<connectorBase>

<importBase alias="connectors" documentURI="connectorBase.ncl"/></connectorBase>

Page 47: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Corpo do programa NCL (body) Inicia com a tag <body> e termina

com a tag </body> O body é um caso particular de

contexto, representando o documento como um todo.

Nele são inseridos os nós (mídias), portas, elos, âncoras etc.

Page 48: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Portas Uma porta do body define o primeiro nó do

documento a ser apresentado. Caso haja mais de uma porta no contexto body

(fato não muito comum), os nós mapeados por todas as portas são iniciados em paralelo.

Exemplo: <port id=“entryPoint”

component=“mainVideo”> As portas também são definidas como ponto de

entrada dos contextos aninhados.

Page 49: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplo de estrutura básica de um arquivo NCL

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

<head><regionBase><region zIndex="0" left="0" top="0" width="550" height="400" id="rgTela"><region zIndex="1" left="0" top="70" width="379" height="330" id="rgVideo"/></region></regionBase><descriptorBase><descriptor id="dVideo" region="rgVideo"/></descriptorBase><connectorBase><causalConnector id="onBeginStart"><simpleCondition role="onBegin"/><simpleAction role="start"/></causalConnector></connectorBase></head><body><port id="entryPoint" component="video1"/><media type="video/mpeg" id="video1" src="video1.mpg" descriptor="dVideo1“/> <media type=“image/jpeg" id=“image1" src=“image1.jpeg" descriptor="dImage“/> <link xconnector="onBeginStart"><bind role="onBegin" component="video1"/><bind role="start" component="image1"/></link></body>

</ncl>

Page 50: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Nós

Os nós são referências para as mídias. O nó funciona semelhante à tag <a> do html. Sendo assim, os nós funcionam como links que, quando ativados, disparam a exibição de uma determinada mídia.

Os nós podem ser de dois tipos: Nó de conteúdo (mídia) ou nó de contexto.

Page 51: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Nó de conteúdo Os nós de conteúdo são definitos através da tag

<media/> Esse tipo de nó é associado a um tipo de mídia

(txt, html, jpeg, mpeg etc). Um nó de conteúdo é iniciado através da tag <media>.

Os tipos mais comuns são: image/gif, image/jpeg, image/bmp, video/mpeg, text/plain, text/html, audio/mp3

Exemplo:<media type="video/mpeg" id="video1" src="video1.mpg" descriptor="dVideo1“/> <media type=“image/jpeg" id=“image1" src=“image1.jpeg" descriptor="dImage“/>

Page 52: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplo prático 01

Criação e exibição de um nó de conteúdo

Page 53: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Nó de contexto Inicia com a tag <context> e termina com a tag

</context> Contextos ou nós de composição são utilizados para

estruturar um documento hipermídia. Os contextos podem ser aninhados, para refletir a estrutura do documento e ajudar o autor a organizar os segmentos do programa audiovisual interativo.

Page 54: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplo de nó de contexto<link id="lSelectBotaoVermelho"

xconnector="connectors#onSelection1SetStartStopDelay"> <bind component="botaoVermelho" role="onSelection">

<bindParam name="keyCode" value="RED" /> </bind> <bind component="ctxBasico" interface="pBasico" role="start" />

</link><context id="ctxBasico">

<port id="pBasico" component="videoPrincipal" /><!-- nós e elos do contexto ctxBasico --> <media type="video" id="videoPrincipal" src="media/video_principal.mpg" descriptor="dVideo1" />

</context>

Page 55: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Elos Através dos elos podemos sincronizar

eventos em um programa NCL Um exemplo de sincronização é o início de

um determinado nó, imediatamente após o início ou término de outro nó etc.

Os elos estão intimamente vinculados aos conectores. Eles definem qual mídia estará associada ao papél condicional de um conector e que mídias sofrerão a ação através dos papéis de ação

Page 56: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplo de declaração de Elo

<link xconnector="connectors#onBegin1StartN" id=“iniciaTitulo"><bind role="onBegin" component=“inicio"/><bind role="start" component="titulo"/>

</link>

Page 57: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplo prático 02

Exibição de um nó de conteúdo imediatamente após o término de outro nó de conteúdo.

Page 58: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Âncoras

As âncoras são pontos de entrada para os nós de mídia ou contextos. O objetivo de se utilizar âncoras é utilizar segmentos de um nó de mídia ou contexto, seja como origem ou destino de elos.

Existem dois tipos de âncoras: A âncora de conteúdo e a âncora de propriedade.

Page 59: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Âncora de conteúdo Define um segmento da mídia (intervalo

de tempo e/ou região no espaço) que poderá ser utilizado como ponto de ativação de elos.

Uma âncora de conteúdo é definida como uma tag <area> dentro da tag <media>.

Exemplo de âncora de conteúdo<media type="vídeo/mpeg" id="video1" src="video1.mpg" descriptor="dVideo1">

<area id="aVideoLegenda01" begin="5s" end="9s"/><area id="aVideoLegenda02" begin="10s" end="14s"/><area id="aVideoLegenda03" begin="15s" end="19s"/>

</media>

Page 60: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplo prático 03

Declaração e utilização de âncoras na sincronização entre legenda e áudio.

Page 61: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Âncora de propriedade Uma âncora de propriedade se refere a

propriedades de um nó, que podem ser manipulados pelos elos.

Uma âncora de atributo é definida através da tag <property> dentro da tag <media> ou <context>

Exemplo:<media type="video" id="video1" src="media/video1.mpg" descriptor="dVideo1"> <property id="top" name="top"/>

<property id="left" name="left"/><property id="width" name="width"/><property id="height" name="height"/>

</media>

Page 62: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplo prático 04

Utilização de âncoras de propriedade na redimensionalisação

Page 63: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA Lua foi planejada para ser utilizada por

qualquer aplicação que necessite de uma linguagem de script leve e poderosa.

Lua é implementada como uma biblioteca, escrita em C

Por ser uma linguagem de extensão, Lua não possui a noção de um programa principal: ela somente funciona embarcada em um programa cliente anfitrião, chamado de programa hospedeiro ou simplesmente de hospedeiro.

Page 64: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA – Bibliotecas para TVDI As novas bibliotecas são divididas em

módulos essenciais onde cada um exporta um conjunto de funções de seu domínio.

Dois módulos serão abordados nesse minicurso. event canvas

Além dos módulos event e canvas, há também os módulos persistent e settings que não serão abordados nesse tutorial.

Page 65: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

O que é Lua? Uma linguagem de script leve

Pequena, portátil, eficiente Uma linguagem tipada dinamicamente

O tipo da variável depende do valor armazenado

Toda linguagem pode ter erro de “tipos” em tempo de execução

Uma linguagem com gerência automática de memória

Pré-compilação em bytecodes Pode-se carregar arquivos compilados

Page 66: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Como Lua é?

Sintaxe convencional print(“hello world”) print“hello world”

Page 67: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Comentários

Comentários de 1 linha -- (dois traços)

Comentários de blocos --[[ bloco ]]

Page 68: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Variáveis

Varáveis globais não precisam de declaração

Variáveis locais são declaradas com a palavra chave local

Page 69: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Tipos 8 tipos básicos

nil – tipo do valor nil que é diferente de qualquer outro, é o valor default das variáveis

boolean – true, false number – double string – array de caracteres, imutável function – valor de primeira classe, significa que

funções podem ser armazenadas em variáveis, passadas como argumentos, retornadas

userdata – dados C arbitrários, manipulado através da API C

thread – threads independentes de execução table – arrays associativos

Consulta do tipo da variável através da função type

Page 70: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Operadores

Aritméticos +, -, *, /, ^

Relacionais <, >, <=, >=, ==, ~=

Operadores lógicos and, or, not Avaliação por curto-circuito

Concatenação ..

Page 71: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Atribuição

a = 0 a, b, c = 0, 0, 0 a, b = b, a -- troca de valores a, b, c = 0, 0 -- c recebe nil

Page 72: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Tabelas

Resultado da expressão {} Qualquer valor como chave, exceto

nil Único mecanismo de estruturação de

dados Indexação na forma variável[índice]

ou variável.índice, quando o índice é uma string

Page 73: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Estruturas de Controle for var = inicio, fim [, passo] do bloco end

Numérico for var {, var} in expressão do bloco end

Genérico while expressão do bloco end repeat block until expressão break ou return pode ser usado para

terminar o laço if expressão then bloco {elseif expressão

then bloco} [else bloco] end

Page 74: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Funções

Retorno foo()

▪ Nenhum valor de retorno x = foo()

▪ Ajustado para 1 valor x, y = foo()

▪ Ajustado para 2 valores {foo()}

▪ Cria uma tabela com todos os valores retornados

Page 75: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Bibliotecas

Basic String Table Math IO OS

Page 76: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Basic

Oferecem funções básicas print type setmetatable pairs error

Page 77: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

String

Funções para manipulação de strings

Page 78: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Table

Funções para manipulação de tabelas table.insert table.remove table.sort

Page 79: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Math

Funções matemáticas math.sqrt math.sin math.log

Page 80: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

IO

Funções de entrada e saída io.open io.close io.read io.write

Page 81: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

OS

Funções associadas ao sistema operacional os.clock os.date os.execute

Page 82: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Mais Informações

Manual Wiki Lua-Users Lista de Discussão IRC

Page 83: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA O modelo de execução de um NCLua é todo

orientado a eventos. Isto quer dizer que para todos os usos do

controle remoto, sincronismos em documentos NCL etc, existem eventos associados e é através deles que toda dinâmica de um NCLua se faz presente.

O controle sobre esses eventos ora é feito pelo formatador NCL que aciona o NCLua (que por sua vez recebe o evento e o processa); ora é feito pelo NCLua que posta o evento (sinalizando alguma mudança ao formatador).

Page 84: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA Durante a inicialização do script,

antes de se tornar orientado a eventos, um NCLua deve registrar pelo menos uma função de tratamento de eventos.

A partir de então, qualquer ação tomada pela aplicação é somente em resposta a um evento enviado pelo formatador a essa função tratadora.

Page 85: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA – Estrutura Básica--- example.lua --- ... -- código de inicialização

function handler (evt)... -- código do tratador end

event.register(handler) -- registro do tratador no formatador

Page 86: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA – Módulo event

No módulo event, estão definidas as seguintes classes: ncl, key, tcp, sms, user

Serão abordadas as classes ncl e key

Page 87: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA – Módulo event

Em um documento NCL, relacionamentos entre nós de mídia são descritos através de elos, cujas relações de causalidade são baseadas em ações e transições sobre seus eventos.

Há três tipos de eventos NCL: apresentação, seleção e atribuição.

Page 88: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA - Módulo event

Apresentação: Eventos de apresentação, conforme o nome diz, controlam a exibição do nó de mídia associado ao NCLua.

Eventos de apresentação podem estar associados a áreas (ou âncoras) específicas ou ao nó como um todo.

Page 89: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA - Módulo event No caso de ações geradas pelo

formatador, o campo action indica a ação a ser tomada pelo NCLua. { class='ncl', type='presentation', area='intro', action='start' } 

Para transições geradas pelo NCLua, o campo transition sinaliza a mudança de estado do seu evento de apresentação. {class='ncl', type='presentation', area='intro', transition='stops' } 

Page 90: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA - Módulo event Atribuição: Atribuições estão sempre

associadas a propriedades do nó de mídia ( no documento NCL).

Eventos de atribuição sempre devem possuir o campo property com o nome da propriedade em questão.

Exemplo:{ class='ncl', type='attribution', property='counter', action='start', value='2' }

Page 91: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA - Módulo event Seleção: eventos de seleção não são tratados

pela classe 'ncl', estando esse suporte na classe de eventos ‘key’.

Usos do controle remoto geram eventos desta classe que são recebidos pelo NCLua.

Neste caso a comunicação é unidirecional, uma vez que o controle remoto é um dispositivo de entrada, apenas.

Exemplo:{ class='key', type='press', key='0' } 

Page 92: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA - Módulo canvas

Um NCLua tem a possibilidade de fazer operações gráficas durante a apresentação de uma aplicação.

A variável canvas do NCLua deve estar associada à uma região.

Page 93: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

LUA - Módulo canvas Exemplos:

width, height = canvas:attrSize()

canvas:drawLine(0,0, width,height)

img = canvas:new('image.png')

canvas:compose(100, 100, img)

canvas:flush() -- atualiza a região do documento NCL

Page 94: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA
Page 95: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Ginga-J Linguagem procedural baseada em Java APIs para a implementação de aplicativos para a TVDI

Pacotes da API Java TV Pacotes DAVIC Pacotes HAVI Pacotes DVB API de controle de tunning API de fluxos de mídia API de canal de retorno API aderentes à especificação ARIB STD-B23 API de integração de dispositivos API de ponte Ginga-NCL

Page 96: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Ginga-J

public interface Xlet {

public void initXlet(XletContext ctx) throws XletStateChangeException;

public void startXlet() throws XletStateChangeException;

public void pauseXlet();

public void destroyXlet(boolean unconditional) throws XletStateChangeException;}

Xlets

Page 97: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Ginga-J

Page 98: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Ginga-J XletView – Emulador Java TVw ,

Emulador Java TV

Page 99: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Ginga-J API Java TV

javax.tv.graphics javax.tv.locator javax.tv.media javax.tv.net javax.tv.service javax.tv.util javax.tv.xlet

Page 100: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 101: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 102: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 103: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 104: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 105: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 106: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 107: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 108: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 109: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 110: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 111: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 112: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 113: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 114: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 115: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Exemplos: Xlet Pizzaria

Page 116: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Ginga-J

HORA DE TRABALHAR!!!

Page 117: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

MERCADO DE TVDIMomento para ganhar $....

Page 118: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Empresas

Page 119: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Parceiros

Page 120: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Aplicações Olimpíadas

Page 121: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Aplicação Quizz

Page 122: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Aplicação Torcida Virtual

Page 123: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Aplicação Embaixadinhas

Page 124: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Por onde começar ?

Page 125: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

http://www.ginga.org.br

Page 126: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

http://www.softwarepublico.gov.br

Page 127: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

http://gingarn.wikidot.com/

Page 128: CONSTRUÇÃO   DE   PROGRAMAS   INTERATIVOS    PARA   TV   DIGITAL   USANDO   GINGA

Obrigado!

[email protected]