1 / 29

Caio Neves Leila Soriano

Caio Neves Leila Soriano. Agenda. O que é Ginga? SBTVD News NCL API NCLua Exemplos. O que é Ginga?. Middleware Aberto do Sistema Brasileiro de TV Digital (SBTVD) Dois Módulos Ginga-J (Java) Ginga-NCL (Lua - suporte) Grande Inovação (Ponte Java-NCL NCL-Java). SBTVD News. Ginga-J

kacy
Download Presentation

Caio Neves Leila Soriano

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Caio Neves Leila Soriano

  2. Agenda • O que é Ginga? • SBTVD News • NCL • API NCLua • Exemplos

  3. O que é Ginga? • Middleware Aberto do Sistema Brasileiro de TV Digital (SBTVD) • Dois Módulos • Ginga-J (Java) • Ginga-NCL (Lua - suporte) • Grande Inovação (Ponte Java-NCL NCL-Java)

  4. SBTVD News • Ginga-J • Primeiro draft final de setembro • Royalties free • Implementação aqui! (cesar) • Seminário de Televisão Digital: Modelo, Cenários, Linguagem • Ginga 1.0

  5. NCL - O que tocar?

  6. NCL – O que tocar? • Suporta todos os tipos definidos na norma. • A definição do que tocar define-se no body.

  7. NCL - Onde tocar?

  8. NCL – Onde tocar? • As dimensões podem ser definidas por unidades de pixel ou por porcentagem.

  9. NCL - Como tocar?

  10. NCL – Como tocar? • Definido no head. • Parâmetros: • transparency • freeze • ...

  11. NCL – Quando tocar?

  12. NCL – Quando tocar? • Descreve-se o comportamento do elo no head. • Pode-se ter ações compostas.

  13. NCL – Quando tocar? • Com o port pode-se tornar uma mídia auto initialize. • <port id="portVideo" component="video"/> • Definido no body.

  14. NCL – Quando tocar? • Conectar a mídia ao comportamento do elo.

  15. NCL - Estrutura • Todo documento NCL é escrito em XML • Cabeçalho do documento NCL • Uma seção de Cabeçalho do programa (head) • Corpo do programa (body) • Pelo menos uma porta • Conclusão do documento

  16. NCL - Estrutura

  17. API – NCLua (Events) • event.register (f: function) • event.timer (time: number, f: function) • event.post (dst: string; evt: event) • event.uptime () • event.post(evt)

  18. Classes de Eventos • Eventos Key: • evt = { class='key', type: string, key: string} • type pode ser 'press' ou 'release'. • key é o valor da tecla em questão. • evt = { class='key', type='press', key=’0’ } • Tipo ‘presentation’: • evt = { class='ncl', type='presentation', area='?', action='start'/'stop'/'abort'/'pause'/'resume' }

  19. Classes de Eventos • Tipo ‘selection’: • evt = { class='ncl', type='selection', area='?', transition='stops' } • Tipo ‘attribution’: • evt = { class='ncl', type='attribution', area='?', transition='stops' } • Classes TCP: • evt = { class=’tcp’, from=’addr:port’, value=string }

  20. Settings • Dados do próprio set-top-box • lang = settings.system.language • age = settings.user.age • location = settings.user.location

  21. Persistent • Variáveis persistentes entre execuções • Divididas entre tres grupos: • “service” • “channel” • “shared” • persistent.service.total = 10 • color = persistent.shared.color

  22. API – NCLua (Canvas) • canvas:new() • Construtor vazio, imagem, (width, height) • canvas:attrSize() • retorno x, y = canvas:attrSize() • canvas:attrColor() • 'white', 'aqua', 'lime', 'yellow', 'red', 'fuchsia', 'purple', 'maroon','blue', 'navy', 'teal', 'green', 'olive', 'silver', 'gray', 'black'

  23. API – NCLua (Canvas) • canvas:attrFont (face: string; size: number; style: string) • canvas:drawLine (x1, y1, x2, y2: number) • canvas:drawRect (mode: string; x, y, width, height: number) • canvas:drawPolygon (mode: string) • canvas:drawPolygon('fill')(1,1)(10,1)(10,10)(1,10)()

  24. API – NCLua (Canvas) • canvas:drawEllipse (mode: string; xc, yc, width, height, ang_start, ang_end: number) • canvas:drawText (text: string; x, y: number) • canvas:flush ()

  25. API – NCLua (Canvas) • canvas:measureText (x, y: number; text: string) • canvas:compose (x, y: number; src: canvas; [ src_x, src_y, src_width, src_height: number ])

  26. Exemplo 1 • Aplicacao que conta o números de cliques e mostra na tela.

  27. Desafio • Faça o macaco comer a banana! • Através de captura de eventos da classe “key” • Criação de canvas com imagens • Composição de canvas

  28. Referências • http://www.abnt.org.br/imagens/Normalizacao_TV_Digital/ABNTNBR15606-5_2008Ed1.pdf • www.ncl.org.br/documentos/TutorialNCL3.0-2ed.pdf

  29. Dúvidas? Obrigado pela atenção!

More Related