Pontifícia Universidade Católica de Minas Gerais Albertino Viana da Silva Jr. Aspectos computacionais da Televisão Digital: Construíndo uma Aplicação Interativa. Betim 2011 Albertino Viana da Silva Jr. Aspectos computacionais da Televisão Digital: Construíndo uma Aplicação Interativa. Monografia apresentada à Pontifícia Universidade Católica como requisito parcial para obtenção do título bacharel em Sistemas de Informação. Orientador: Claudinei Teixeira Rodrigues Betim 2011 Albertino Viana da Silva Jr. de Aspectos computacionais da Televisão Digital: Construíndo uma Aplicação Interativa. Monografia apresentada a diciplina Sistemas de Informação da Pontifícia Universidade Católica de Minas Gerais, avaliada e aprovada pela banca: __________________________________ Claudinei Teixeira Rodrigues (Orientador) – PUC Minas __________________________________ Bernardo Jeunon de Alencar (Coordenador do curso de Sistemas de Informação) PUC Minas __________________________________ Gilberto Barbosa Mota (Avaliador) – PUC Minas Betim, 21 de Junho de 2011 RESUMO O enfoque dado neste trabalho baseia-se na realidade brasileira, onde a televisão como meio de maior penetração na sociedade, passa atualmente por uma fase de transição com o advento da sua digitalização. Sendo assim, esta monografia trata especialmente do estudo de desenvolvimento de aplicativos para o middleware brasileiro Ginga-NCL1, tomando como ponto de partida uma revisão bibliográfica que abrange pesquisas em artigos, revistas, sites oficiais na internet e demais monografias relacionadas. Com isso, será proposto um aplicativo destinado à implementação de um serviço para o T-GOV, onde o conceito de T-GOV denota o início do governo eletrônico através do uso da televisão digital 2 para os fins sociais. Para demonstrar sua utilização, foi criado um cenário baseando-se no programa de governo: Orçamento Participativo - definindo assim um modelo de apresentação escrito na linguagem NCL3 e sua linguagem de script LUA4. Esta aplicação foi testada em um emulador que simula o ambiente do sistema televisivo e mostra como o telespectador poderia interagir através do controle remoto, podendo este servir de base para futuros projetos. O resultado final, busca enfatizar a influência da TV Digital interativa como geradora de novos paradigmas que impactarão de certa forma nos hábitos de seus espectadores. 1 2 http://www.gingancl.org.br http://www.dtv.org.br 3 http://www.ncl.org.br 4 http://www.lua.org Palavras Chave: Digital; Interativa; sociedade; ABSTRACT The approach taken in this work is based on the Brazilian reality, where the television as a means to greater penetration in society, is currently undergoing a transition phase with the advent of digitalization. Therefore, this monograph is monograph is especially the study of development of applications for the Brazilian middleware Ginga-NCL, taking as its starting point a literature review covering research articles, magazines, official websites on the Internet and other related papers. With this, an application will be proposed for the implementation of a service for the T-GOV, where the concept of T-GOV denotes the beginning of eletronic government through the use of digital television for social purposes. To demonstrate its use, a scenario was created based on the government program: Participatory Budgeting - thus defining a presentation written in the NCL and its scripting language LUA. This application was tested on an emulator that simulatesthe environment of the television system and shows how the viewer could interact via remote control, which may serve as a basis for future projects. The end result, seeks to emphasize the influence of interactive digital TV as a generator of new paradigms in a way that will impact the habits of its viewers. Key words: Digital, Interactive, society; LISTA DE FIGURAS Figura 1 - Fases de implementação da TVD. ............................................................ 12 Figura 2 - Modelo de um sistema de televisão digital interativa (MONTEZ, 2005) .... 18 Figura 3 - Set-top-box equipado com uma antena UHF. ........................................... 21 Figura 4 - Participação popular no OP em Belo Horizonte. ....................................... 25 Figura 5 - Emulador Ginga-NCL. ............................................................................... 29 Figura 6 - Conexão via SHH...................................................................................... 30 Figura 7 - Interface da IDE Eclipse utilizando o plug-in NCL. .................................... 31 Figura 8 - Screenshot do software Composer. .......................................................... 32 Figura 9 - Caso de uso 01 ......................................................................................... 36 Figura 10 - Caso de uso 02 ....................................................................................... 36 Figura 11 Caso de uso 03 ........................................................................................ 37 Figura 12 - Caso de uso 04 ....................................................................................... 37 Figura 13 - Caso de uso 05 ....................................................................................... 37 Figura 14 - Caso de uso 06 ....................................................................................... 38 Figura 15 - Botão de interatividade, inicializador da aplicação. ................................. 43 Figura 16 - Tela de apresentação inicial. .................................................................. 43 Figura 17 - Detalhes da obra. .................................................................................... 44 Figura 18 - Validação do telespesctador. .................................................................. 44 LISTA DE TABELAS Tabela 1 - Comparativo das tecnologias analógia e digital. ...................................... 19 Tabela 2 - Características da TV convencional e digital. ........................................... 22 Tabela 3 - Funções do controle remoto .................................................................... 27 LISTA DE SIGLAS ABNT - Associação Brasileira De Normas Técnicas BBC - British Broadcasting Corporation E-GOV - Governo Eletrônico IBGE - Instituto Brasileiro de Geografia e Estatística IDE - Integrated Development Environment NCL - Nested Context Language PUC - Pontifícia Universidade Católica OP - Orçamento Participativo SBTVD - Sistema Brasileiro de Televisão Digital TCP - Transmission Control Protocol T-GOV - Governo Televisivo TRE - Tribunal Regional Eleitoral TV - Televisão TVD - Televisão Digital TVDI - Televisão Digital Interativa UML - Unified Modeling Language SUMÁRIO 1. INTRODUÇÃO 1.1. Justificativa 1.2. Objetivos 2. A INTERATIVIDADE 3. TV DIGITAL INTERATIVA 3.1. O receptor de dados: Set-top box 3.2. O Advento De Novos Paradigmas 4. T-GOVERNO: Uma nova oportunidade 4.1. Orçamento Participativo: Você sabe o que é? 5. AMBIENTE DE DESENVOLVIMENTO 5.1. O Middleware GINGA 5.2. A linguagem NCL 5.3. A linguagem Lua 5.4. Emulador Ginga-NCL 5.5. IDE Eclipse Galileo 5.6. Ferramenta Composer 6. A APLICAÇÃO 6.1. Um Foco na usabilidade 6.2. Público Alvo 6.3. O aplicativo: InteractOP 6.3.1. Descrição do sistema 6.3.2. Requisitos e Atividades 6.3.3. Diagramas de Casos de Uso UML 7. CONSIDERAÇOES FINAIS 7.1. Implementações Futuras 10 12 14 15 17 20 21 23 24 26 26 27 28 29 30 31 33 33 34 34 34 35 36 39 40 REFERÊNCIAS BIBLIOGRÁFICAS 41 ANEXO 1: Interfaces do Sistema ANEXO 2: Códigos fonte NCL do InteractOP 43 45 10 1. INTRODUÇÃO Sabemos que a informacão se propaga através de vários meios e nas diversas formas, consequentemente surge com isso não só novas possibilidades e oportunidades, como também desafios e idéias inovadoras. A televisão digital é uma tecnologia mundialmente em ascensão, que propociona uma melhora significativa da qualidade audiovisual. Devido a sua nova caracteristica( capacidade de processamento de dados nos receptores) torna-se possível a difusão de textos, planilhas e até mesmo execução de programas de computador. Outra vantagem excepcional a ser explorada é a possibilidade da interatividade entre espectador e a informação recebida. No Brasil o problema de acesso à informação de qualidade ainda não foi solucionado, sendo que apenas uma pequena parcela da população tem acesso a ela. Nesse sentido, o governo vem buscando iniciativas que objetivem alcançar regiões remotas e integrar toda população nacional aos serviços de cultura lazer, saúde e programas educacionais. O governo brasileiro, reconhecendo o potencal da Internet como meio de maior capacidade de fornecer informação, já vem a algum tempo disponibilizando de forma eletrônica um conjunto de serviços públicos. Esta gama de serviços é chamado de e-gov. Contudo, contrapondo o número de televisores, a presença dos computadores nos lares brasileiros é menos de um para cada dez famílias. Em palestra na FUTURECOM5, o presidente da Telebrás - Rogério Santanna, explanou que a meta do governo com o Plano Nacional de Banda Larga 6, é levar internet rápida e de baixo custo a 84% da população brasileira até 2014. Apesar de todos os esforços no sentido de usar a Internet como ferramenta geradora de conhecimento, hoje em dia somente 21% da população têm contato com essa tecnologia, num país de 190.732.694 milhões de habitantes7. O desafio então é juntar a conectividade e interação da internet com o alcance do aparelho de televisão. Dentro desse contexto, foi implementada no nível de demostração, uma aplicação para o processo de voto no orçamento participativo, 5 São Paulo, 28 de outrbro de 2010 http://www.mc.gov.br/plano-nacional-para-banda-larga 7 Dados do IBGE. 6 11 em que o telespectador através da televisão, participará da escolha das obras a serem realalizadas. 12 1.2. Justificativa Um dos fatores que motivaram este trabalho foi o estudo das linguagens e programas disponíveis para o desenvolvimento de sistemas voltados para a plataforma televisiva. Juntamente com o desejo de apreendizado de novas tecnologias, outro fator motivacional é o atual rumo de implantação dos projetos gorvernamentais para a consolidação do sistema brasileiro de TV Digital. Observando-se o cronograma de implantação (figura 1), o Brasil vive um clima de transição, vivenciando a primeira onda de impacto decorrente da transição da TV analógica para TV Digital. As ondas de impacto descritas por (MONTEZ, 2005) caracterizam etapas já experimentadas por outros países em tal processo de transição, em que pelas quais o Brasil ainda deve passar. O governo espera que até 2016, a TVD substitua por completo a analógica(Swtch-Off), sendo o primeiro país da América Latina a fazer esta transição. Figura 1 - Fases de implementação da TVD (FONTE: ANATEL). A idéia do governo brasileiro é de que a televisão sirva como instrumento de inclusão digital e consequentemente social, e a curto prazo os serviços interativos são os que deverão revolucionar a maneira como nos comunicamos, já que a 13 presença da TV nos lares e relativamente maior em relação ao número de computadores. Como observado no Caderno de metodologia e diretrizes do OP 8 de 2011, após 17 anos desde o início do sistema de decisão do orçamento participativo na cidade de Belo Horizonte, apenas 700 mil pessoas participaram do processo de escolha das obras, número bem pequeno em relação a uma população de 2.375.444 milhões9. Isso nos leva a concluir que a radiodifusão certamente seria o meio mais democrático para tal processo. O Brasil ainda está somente engatinhando em direção à TV digital, focando principalmente na infra-estrutura de implantação do hardware necessário. Assim, pouco se fala sobre as aplicações que estarão disponíveis nesta plataforma. A TVD já é realidade no dia-a-dia dos grandes centros e suas possibilidades de entreternimento e aprendizado alimentam um novo mercado ainda carente de desenvolvedores voltados para esta tecnologia. 8 Disponível em: http://portalpbh.pbh.gov.br/pbh/ecp/files.do?evento=download&urlArqPlc= caderno_metodologia_diretrizes_op_2011_2012.pdf 9 Dados do IBGE. 14 1.2. Objetivos Tem-se como alvo deste trabalho o estudo da linguagem NCL, apresentando o conceito de middleware para TV digital e tendo como objetivo principal o desenvolvimento do InteractOP, um sistema de votação que utilizará o canal de interação televisivo10, focado no plebiscito do orçamento participativo realizado na cidade de Belo Horizonte. Visando ampliar a mobilização e a participação da sociedade neste serviço. Espera-se também que este venha a servir de base para futuros discursos, que por sua vez, possam gerar novos serviços sociais a serem oferecidos pela televisão digital interativa no Brasil. 10 Possibilita o tráfego de informações entre o telespectador e a emissora. 15 2. A INTERATIVIDADE “O telespectador passa a ter um canal para se comunicar com a emissora, tirando-o da inércia a qual está submetido (...). O grau dessa interatividade vai depender dos serviçoso oferecidos e, principalmente, da velocidade do canal de retorno” (MONTEZ e BECKER, 2004, p.13) Durante o estudo surgiu a seguinte questão: Interação seria o mesmo que interatividade? Não exatamente. A definição de interatividade é bem mais recente do que o conceito de interação, o termo interatividade surgiu no contexto das novas Tecnologias de Informação e Comunicação digital(TIC). Para Lemos (LEMOS, 2000), interatividade é um caso específico de interação, a interatividade digital, compreendida como um tipo de relação tecnosocial, ou seja, como um diálogo entre homem e máquina, através de interfaces gráficas e em tempo real. Ainda nesta linha de raciocínio Montez e Becker (2004) definem a interatividade pela TVD como toda ação que possa ser considera mútua e simuntânea, envolvendo dois ou mais participantes que pretendem chegar a um objetivo comum. Tecnicamente, a interatividade se caracteriza pela ação do usuário através do controle remoto e apartir disso gerar um evento de retorno ao sistema da TV digital. Dessa forma, pode surgir a representação de um botão na tela da TV informando que existe uma interatividade disponível naquele momento e ao se precionar no controle remoto o botão correspondente, o receptor digital intercepta a ação e responde ao telespectador, iniciando a interatividade. Caso este botão tenha surgido sozinho na tela, ou seja, de modo previamente determinado por programação do aplicativo(linha de código) em sicronismo com outro evento, isso não se carecteriza como interatividade, pois não existiu ação do usuário. Antes mesmo da televisão ser digital já existiam diversas iniciativas para que o telespectador participasse da programação assistida. Bons exemplos seriam os reality shows, onde a audiência decide quem fica ou sai do programa através de votações via telefone, outro exemplo seria também o programa “Você Decide” 11, que dentre dois finais distintos podia-se também, via telefone, escolher qual seria o encerramento da trama que se passava. Este é um tipo de interação indireta, pois 11 Emitido pela Rede Globo entre os anos de 1992 e 2000. 16 necessita de um terceiro meio de comunicação para que a resposta chegue à emissora. Utilizando-se dos aplicativos interativos, que são softwares por meio dos quais se permite ao espectador apenas manuseando do controle remoto enviar e receber dados pela televisão, a interatividade pela TV conectada à internet deverá também sustentar atividades como: T-Commerce (nome para o comércio eletrônico), serviços bancários, correio eletrônico e bate-papo. Surgindo com isto uma nova e boa maneira de encurtar distâncias. 17 3. TV DIGITAL INTERATIVA A televisão digital nada mais é do que a evolução do principal meio de comunicação em massa do país, ela surge com o propósito de tentar democratizar esse processo informativo, promovendo a cidadânia e a inclusão digital da população. Para Becker (BECKER, 2005), a exclusão digital é causada por outra razão muito conhecida pelo brasileiro: o aumento da exclusão social. A interatividade adicionada aos programas de TV e a principal promessa trazida pela TV Digital. Mas esta só é possível em sua totalidade mediante a existência de um canal de retorno. Porém, após quase quatro anos decorrida a primeira transmissão digital12 no país, só agora esta promessa começa de fato a ser implementada. Devido a diversidade das soluções disponíveis (Linha Discada, DSL, Cabo, Fibra Ótica, Rede Elétrica, Wi-Fi, Satélite, GSM, entre outras) para a implementação de um canal de interatividade, torna-se pouco provável que seja adotado um padrão de transmição universal. Visto isso, pontos como cobertura de grandes áreas geográficas, utilização da infraestrutura já existente, mobilidade e baixo custo de implementação devem ser levados em consideração para a escolha de uma solução viável para o canal de retorno. Pessoalmente, a melhor definição encontrada para o termo televisão interativa, foi a dada por Mark Gawlinski da BBC (GAWLINSKI, 2003) em seu livro, onde “Televisão interativa pode ser defina como qualquer coisa que torne possível aos telespectadores dialogarem com as pessoas que fazem um canal de televião, programa ou serviço. Um diálogo que leva os telespectadores para além da experiência passiva de assistir e os permita fazer escolhas ou tomar ações – mesmo que as ações sejam tão simples como preencher um cartão postal e enviá-lo pelo, ou desenhar uma imagem na tela da televisão.” Observa-se atualmente que a interação disponível nos programas de TV aberta não passa de menus para detalhes a respeito do que se é exibido naquele instante ou no máximo o cronograma dos programas da sequência. O sinal 12 Na cidade de São Paulo, em 2 de dezembro de 2007 às 21h20. 18 responsável para tal funcionalidade se propaga pelo ar nas ondas de rádiofrequência, não precisando assim o aparellho estar conectado à internet. Independentemente da existência do canal de retorno, para que seja fornecida a interação do usuário é necessário o armazenamento e processamento local das informações. Entretando, objetivando fechar o ciclo de interação, esta conexão seria imprescindível para também realizar o nosso envio de dados à emissora como resposta a algum evento. Um sistema de TVD interativa é dividido em 3 partes principais, no qual é resumidamente ilustrado pela Figura 2. Figura 2 - Modelo de um sistema de televisão digital interativa (MONTEZ, 2005) A descrição de cada uma deles é feita por Carlos Montez (MONTEZ, 2005), onde “(i) o difusor, responsável por prover o conteúdo a ser transmitido e dar suporte as interações dos telespectadores; (ii) o receptor, que recebe o conteúdo e oferece a possibilidade de o telespectador reagir ou interagir com o sistema; e (iii) um meio de difusão, que permita que o difusor e o receptor possam se comunicar”. Logo em seguida (Tabela 1) podemos visualizar um comparativo simplista entre dois tipos básicos de televisores e seus sistemas de recepção. 19 Analógica Digital Definição Horizontal13 525 linhas 1080 linhas Proporção da tela14 4:3 16:9 Tipo do conteúdo Passivo Interativo Programas 1 por emissora 6 por emissora simuntâneamente Meios de acesso TV (antena, cabo ou satélite) Celular, Computador, TV (antena, cabo ou satélite) Som Mono ou Estéreo, com 2 canais Doblby Digital, com 6 canais Sinal Imagem Ambos os sinais enfraquecem com a distância Imagem Ruim caso o sinal fique fraco. Enquanto houver sinal a imagem é perfeita Tabela 1 - Comparativo das tecnologias analógia e digital. Portanto, a diferença atual entre o sistema analógico e digital, é a execelência do sinal, incluíndo a mobilidade e portabilidade do acesso, propocionando aumento na qualidade de vídeo e áudio, multiprogramação(diferentes programas no mesmo canal) e novas possibilidades de serviços. Tal como aponta Rodrigues (RODRIGUES, 2006), programas de TV digital interativa podem ser entendidos como aplicações hipermídia/multimídia. Sistemas de autoria hipermídia são o suporte para a geração de informação, não se restringindo apenas à concepção dos conteúdos em si, mas incluindo também a concepção de como eles devem ser apresentados. Contudo, como em qualquer outro processo de mudança tecnológica, exitem obstáculos e dificuldades de implentação. Novas Tecnologias exigem maior investimento financeiro, e apesar dos incentivos do governo em baratear o custo dos equipamentos, os altos preços para aquisição destes serão o principal entrave para a popularização da TVD. 13 Determina a resolução da imagem, onde resoluções mais altas significam mais detalhes na imagem. 14 Para cada 4 unidades de tamanho na horizontal, exite 3 unidades para a vertical. O mesmo se aplica na proporção 16 por 9. 20 A preparação das emissoras e desenvolvedores deve caminhar independente desta polêmica. O importante é estar em condição de atender o mercado antes questão se defina. 3.1. O receptor de dados: Set-top box Os tradicionais televisores analógicos – até mesmo aqueles no formato widescreen15 - fabricados antes do início da TV digital não possuel um receptor digital interno. Para que o aparelho de televisão convencional consiga receber a imagem digital é preciso o uso de um equipamento, o conversor de TV Digital, mais conhecido como Set-Top Box. O conceito de Set-Top box surge juntamente com a nova plataforma da TVD, com o propósito de ser a unidade receptora e decodificadora dos sinais digitais bidirecinados, independentemente da interface de comunicação. Entre outras funções realizadas pelo Set-top box, estão a verificação dos níveis de segurança e direitos de acesso do usuário, itens altamente necessários nas transações de dados, além é claro de ser este é o principal hardware responsável pela interatividade da TV, já que realiza o processamento das instruções em programas interativos. Os novos televisores, com suporte ao sistema digital, já possuem neles embutidos este dipositivo, porém esse só é chamado de Set-top box quando estiver exteno ao televisor. Os atuais conversores digitais, set-top boxes, ainda não contam com o Middleware Ginga(definido mais adiante), ou seja, ainda não permitem a plena interatividade com o telespectador. 15 Proporção 16 por 9. 21 Figura 3 - Set-top-box equipado com uma antena UHF. Hoje, os sistemas que operam o set-top boxes são bem mais simples comparados aos encontrados em computadores, contudo, seu hardware contém tecnologias comuns ao mundo da computação, possuindo processador, disco de armazenagem local para as aplicações, sistema operacional e interfaces de rede. 3.2. O Advento De Novos Paradigmas Sabemos que a TV pode influencia diretamente o comportamento social do indivíduo. O ponto a se pensar agora é o novo conceito de telespectador-receptor, que tende a sofrer uma grande mudança com a chegada da TVD interativa. Hoje o modo de assistir TV, tal como conhecemos, é o espectador se sentar no sofá e receber passivamente o conteúdo escolhido pela emissora, tornando o entreterimento repetitivo e tedioso. Isto muda com o surgimento da interatividade, pois ocorre com ela uma revolução na forma de como é vista essa massa telespectadora. O usuário passa a participar ativamente do conteúdo, por isso, a televisão digital interativa é considerada não só uma revolução tecnológica pelo melhoramento significativo da qualidade de som e imagem de alta definição, mas também uma revolução socio-cultural. Televisão convensional Televisão Interativa Expectador passivo Usuário Ativo Mono Canal Multiplos Canais 22 Programação Linear Programação participativa Plataforma de comunicação unidirecional Plataforma de comunicação bidirecional. Modelo de receita basedo no propaganda Modelo de receita baseado no comécio Uso principal para o entreterimento Uso estendido a compras, comunicação, integração social e educação O conteúdo é empurrado até a audiência O conteúdo é puxado pela audiência Tabela 2 - Características da TV convencional e digital. 23 4. T-GOVERNO: Uma nova oportunidade “O governo eletrônico se transformará em obsessão mundial, trazendo algo que ainda hoje é quase inimaginável: administrações públicas voltadas para o cidadão, atuando com eficácia e transparência.” (Luís Nassif) O fortalecimento da relação de aproximação entre governo e cidadão será possível pela utilização de uma ferramenta que seja acessível à grande massa. Essa ferramenta é a TV digital e um de seus serviços será a T-Gov. Para Montez e Becker (2005), o T-Gov consiste em oferecer serviços governamentais pela TV, tornando o acesso a eles mais fácil e evitando assim deslocamentos e redução dos procesos burocráticos. Segundo Diniz (2009), a ideia de um governo eletrônico, embora esteja vinculada ao uso de tecnologia de informação no setor público, ultrapassa essa dimensão. Em outras palavras, o governo eletrônico tem como meta a transformação das relações do governo com os cidadãos. Porém, as dificuldades no estreitamento dessas relações ainda são muitas. No Brasil, menos de uma em cada dez residências possue acesso à Internet. Desse modo, o E-gov detém um limitado alcance levando em consideração as classes mais baixas. Por outro lado a televisão é o meio de comunicação com maior penetração na sociedade, estando presente em 95% dos lares16, contudo a televisão analógica com é hoje, limita a implementação e utilzação de serviços do governo. Com o surgimento da TVD interativa, o telespectador passa a fazer parte diretamente da produção televisiva e com isso o país busca adaptar-se nesse novo mundo da televisão democrática. Por conta disso, o E-Gov foi adaptado para a televisão, uma forma bastante viável de atingir grande parte da população, além de tornar os serviços mais acessíveis e mais fáceis de serem utilizados. . Resumidamente, o T-governo irá oferecer à sociedade melhores condições de acesso à informação e aos serviços governamentais, aliando comodidade e inclusão social. 16 Dados do IBGE, 2010. 24 4.1. Orçamento Participativo: Você sabe o que é? “Participação é um dos cinco princípios da democracia. Sem ela, não é possível transformar em realidade, em parte da história humana, nenhum dos outros princípios: igualdade, liberdade, diversidade e solidariedade”. (Herbert de Souza) De acordo com a definição de orçamento participativo dada no Caderno de Metodologia e Diretrizes17 da Prefeitura de Belo Horizonte, esta é uma política democrática de governo, onde a sociedade define as prioridades de investimento dos recursos destinados à execução das obras de infraestrutura e urbanização. A ONU considera o OP como uma das 40 melhores práticas de gestão pública urbana no mundo. “A participação do cidadão qualifica os processos decisórios , tornado-os mais legítimos e, principalmente, aumenta a eficiência administrativa do próprio estado.” 18 O OP foi criado para possibilitar aos cidadãos escolher o destino dos investimentos públicos que até então eles desconheciam e participar ativamente na melhoria da cidade, democratizando assim a gestão e o planejamento público. Objetivando incluir os cidadãos no processo de tomada de decisão não é feita nenhuma pré-seleção dos participantes, geralmente a única exigência para votar é a condição de ser eleitor daquele município. A cideade de Belo Horizonte iniciou as experiências com essa gestão orçamentária em 1993 e ao inovar no processo de votação, se tornou pioneira ao implantar o orçamento participativo Digital em 2006. Disponibilizando um sistema de escolha via internet, e oferecendo 158 pontos públicos de acesso à rede para assegurar maior participação das pessoas. Considerado um dos mais importantes programas da prefeitura, o OP Digital se transformou em modelo para as demais cidades brasileiras. 17 Ano 2011. Eleonora Schettini Martins Cunha e Eduardo Moreira da Silva, Op. Cit., p. 17, em Experiências internacionais de participação 18 25 Figura 4 - Participação popular no OP em Belo Horizonte. Nessa modalidade digital todos os cidadãos cadastrados no Tribunal Regional Eleitoral com domicílio eleitoral em Belo Horizonte, podem participar da votação pela internet ou telefone. Em Betim, cidade vizinha, faz-se uso das urnas eletrônicas, que foram espalhas pelas regionais concorrentes ao processo de escolha das obras. Ainda assim, existe o problema de que nem todas as pessoas possuem tempo ou diposição suficiente para se deslocar até um desses pontos, e mesmo alcançando uma parcela relativamente satisfatória, tudo isso gera gastos execivos que poderão ser evitados com a aplicação de escolha sendo disponibilizada pela TV, sem contar a comodidade e praticidade que este meio oferece. Juntando o últil ao agradável, torna-se possível com TVD ultrapassar fronteiras físicas unindo assim participação popular e inclusão social `a novas tecnologias. 26 5. AMBIENTE DE DESENVOLVIMENTO Ambiente de desenvolvimento é considerado aqui como todo o aparato técnico empregado na criação da aplicação InteractOP, tanto na codificação como na visualização. Sendo este ambiente, o conjunto de softwares, ferramentas e as linguagens de programação utilizadas. A TV com interatividade será simulada através de uma máquina virtual da VMware19, contendo o sistema operacional Linux Ubuntu20 Server versão 10, com o middleware Ginga21 já instalado e configurado, tal máquina é fornecida pelo laboratório de informatica da PUC do Rio de Janeiro22. Tendo como apoio no desenvolvimento, as IDEs do Eclipse23 e Composer24 para codificado através das linguagens NCL e Lua. Estas linguagens serão posteriomente comentadas de modo bastante simplista e informal, visto a exitência de trabalhos já relacionados, e neste momento enfatizar um maior detalhamento foge ao escopo deste. 5.1. O Middleware GINGA Middleware ou mediador é um componente com finalidade para o compartilhamento de informações entre camadas ou softwares, possibilitando ao programador a abstração de diferenças relacionadas à plataformas, protocolos de comunicação e também independências de sistemas operacionais, fabricante e tipo de receptor (TV, celular, PDAs etc.). O middleware Ginga é resultado de uma ação conjunta entre a Pontifícia Universidade Católica do Rio de Janeiro responsável pelo desenvolvimento da linguagem de marcação NCL e o laboratório de aplicações de video da 19 http://downloads.vmware.com/d/info/desktop_downloads/vmware_player/3_0 http://www.ubuntu.com 21 http://www.ginga.org.br 22 http://www.telemidia.puc-rio.br/pt/index.html 23 http://www.eclipse.org 24 Diponível para download após cadastro na comunidade Ginga em http://www.softwarepublico.gov.br 20 27 Universidade Federal da Paraíba25, criadora do módulo responsável pela interpretação de código Java nos Set-top boxes. As aplicações interativas para Ginga podem ser puras, onde somente uma linguagem é usada no desenvolvimento, ou híbridas, quando misturamos linguagens na aplicação, ou seja, um arquivo de scripts Lua que é invocado pelo programa NCL principal. Neste caso chamamos o documento de NCLua. Segundo a ABNT(2010) o middleware deve reconhecer basicamente as seguintes entradas: Funções numéricas Descrição Codigo das teclas Teclado numérico 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Voltar BACK Sair EXIT Confirmar OK Teclas direcionais CURSOR_LEFT, CURSOR_RIGHT, CURSOR_DOWN, CURSOR_UP Teclas coloridas RED, GREEN, YELLOW, BLUE Menu MENU Informação INFO Troca de canais CHANNEL_DOWN, CHANNEL_UP Volume do audio VOLUME_DOWN, VOLUME_UP Desligamento POWER Funções interativas Funções navegação Funções do televisor Tabela 3 - Funções do controle remoto 5.2. A linguagem NCL Foi desenvolvida pela Pontifícia Universidade Católica do Rio de Janeiro e considerada uma das maiores inovações nacionais dos últimos anos. A norma NBR 15606-2 explica que um documento NCL apenas define como os objetos de mídia são estruturados e relacionados no tempo e espaço. 25 http://www.lavid.ufpb.br 28 Tomando como base o estudo didático da linguagem NCL realizado para o desenvolvimento deste trabalho, percebe-se que esta realmente possui alto nível de abstração, caracterisando-a com linguagen declarativa, em que após especificar as mídias a serem executadas, apenas é necessário declarar de forma lógica o resultado esperado, onde é o uso de algorítmos para o interpretador ou compilador da linguagem se torna dispensável. É o arquivo “main.ncl” que se define e são organizas as mídias, especificando suas regiões de apresentação, sincronização temporal e eventos condionais. Por exemplo, o ícone da interatividade (Figura 15) só aparece após 15( quinze ) segundos do vídeo iniciado, e se mantém visível durante os 100( cem ) segundos que se decorrem. O usuário pode apertar o botão vermelho no controle remoto, mas é só com este ícone ativo que é possivel disparar a inicialização do aplicativo. Se o telespectador não precionar no botão indicado, aprogramação segue normalmente, isso para os casos de inexistência do Sep-Top-Box ou do canal de retorno. 5.3. A linguagem Lua A linguagem Lua26 tem também origem nacional e foi criada em 1993 pela PUC do Rio de Janeiro com licença liberada para uso e código aberto. Segundo seus mantenedores, ela é a única linguagem de programação desenvolvida fora do primeiro mundo que se tornou amplamente utilizada. Lua é hoje a linguagem mais importante na área de entretenimento, e atualmente aparece entre as vinte mais populares do planeta, porém dentre a comunidade de usuários da linguagem menos de 10% são de brasileiros. A sua aceitação internacional se deu pela qualidade no desenvolvimento jogos, animações e, principalmente, conteúdos para a TV Digital. 26 http://www.lua.inf.puc-rio.br 29 5.4. Emulador Ginga-NCL Basicamente, um emulador imita as funções de um sistema para reproduzir seu comportamento em outro ambiente, permitindo dessa forma que um software criado para uma plataforma funcione em outra. Ginga-NCL27 é o responsável pela emulação do programa NCL, ou seja, por simular, no computador a interatividade fornecida pelo Set-top box, oferencendo também suporte à execução dos script em LUA. Figura 5 - Emulador Ginga-NCL. Para executar uma aplicação através do emulador, deve-se abrir uma conexão utilizando o protocolo SSH - Secure Shell, que acessa remotamente a máquina virtual para hospedagem dos arquivos e mídias necessárias. Para esta estapa de tranferência, foi utilizado o “Secure File Transfer Client”. Já a inicialização 27 Fornecido em: http://www.gingancl.org.br/ferramentas.html 30 das aplicações se dar por linha de comando e através da ferramenta “Secure Shell Client”. Ambas pacotes da SSH Communications Security Corp(TM) 28. Figura 6 - Conexão via SHH. 5.5. IDE Eclipse Galileo Apesar da IDE Eclipse ser comumente utilizada para o desenvolvimento de aplicações em Java, a Universidade Federal do Maranhão desenvolveu um plug-in para o Eclipse que agrega algumas funcionalidades para os documentos em NCL29 e LUA.30 Tais complementos auxiliam e agilizam a criação de aplicações, permitindo que facilidades extras do Eclipse sejam reutilizadas e integradas com outras ferramentas de desenvolvimento. Dentre elas podemos citar: “suporte a navegação hipertextual”, “sugestão de parâmetros e auto-completar”, “sugestão em pop-up para 28 Versão 3.2, sob licença de avaliação de 30 dias. http://laws.deinf.ufma.br/~ncleclipse/ 30 http://luaeclipse.luaforge.net/ 29 31 selecionar arquivo”, “fechamento automático dos elementos”, “validação da sintaxe e marcação de erros no documento” e “formatação e identação de código”. Figura 7 - Interface da IDE Eclipse utilizando o plug-in NCL. 5.6. Ferramenta Composer Para facilitar o desenvolvimento específicamente na linguagem NCL, a PUCRIO também desenvolveu uma ferramenta chamada Composer. Trata-se de uma iniciativa que busca desenvolver apicações de forma prática sem a necessidade de muitos conhecimentos em programação, adicionando facilidades e permitindo aos iniciantes na linguagem criar programas para o middleware GINGA. Esta ferramenta foi utilizada neste trabalho pela sua extrema facilidade na criação das regiões relativas os parâmetros da regionBase. O Composer é compatível com versões do Windows, Linux e MacOS, ele oferece o desenvolvimento visual das aplicações com o auxilio de quatro tipos de visualização dos componentes, figura 8: 32 1 - Textual: apresenta as linhas de código NCL. 2 - Layout: apresenta uma visão da estrutura das regiões espaciais do aplicativo. 3 - Estrutural: apresenta o esquema de todas as mídias e suas conexões. 4 - Temporal: apresenta uma linha do tempo com o comportamento de cada mídia a ser executada, com os sincronismos temporais e a participação do usuário (aba não exibida na imagem 8). Figura 8 - Screenshot do software Composer. 33 6. A APLICAÇÃO Os serviços atualmente disponibilizados para a televisão digital podem ser classificados em quatro categorias básicas: Comunicação, Transação, Entretenimento e Informação. Observando-se os requisitos que atendam a execução do aplicativo em rede televisiva, podemos enquadrá-lo no âmbito da categoria de serviços transacionais, ou seja, além de demandar um canal de transmissão seguro será preciso levar em conta características como privacidade, integridade e autenticidade do telespectador na troca de informações bidirecionais. O produto final deste estudo poderá ser apresentado ao mercado, feiras e congressos da área, contudo sua comercialização não está autorizada. Pois este visa unicamente servir como material didático para profissionais e acadêmicos, estimulando a discussão sobre a produção de programas para a televisão digital brasileira. 6.1. Um foco na usabilidade No desenvolvimento de qualquer sistema, idependentemente do setor de aplicabilidade, é de grande relavância nos colocarmos no lugar do usuário final. Sendo assim, torna-se fundamental e imprescindível o estudo de técnicas relativas a usabilidade e interfaces dos aplicativos a serem criados. Nielsen (1993), define em seu livro que usabilidade é um atributo de qualidade, que avalia o grau de facilidade de interação de algum dispositivo, seja ele um site, um painel de avião, ou qualquer interface que possa ser operada por um usuário. Além disso, a palavra também se refere aos métodos para melhorar a facilidade de uso durante o processo de planejamento de uma interface. Em outras palavras, nada adianta ter uma nova tecnologia e seu uso ser tão complexo que a torna inútil ao seu público alvo. Por isso, a produção do conteúdo a seguir possuirá interfaces amigáveis e sua utilização tenderá ser simples e intuitiva, 34 facilitando a interação com os usuários independente de sua cultura ou camada socal. 6.2. Público alvo O conteúdo do aplicativo é de classificação livre e sem restrição de horário de exibição. Todo telespectado poderá interagir, mas somente aqueles que estão legalizados junto ao TRE podem participar da votação. 6.3. O Aplicativo: InteractOP O desenvolvimento desta aplicação teve como base os arquivos “tur_ma.ncl” 31 e “supermercado.ncl”32. O primeiro, da aplicação “Guia Turístico do Maranhão”, que foi desenvolvida pela PetComp (Programa de Educação Tutorial de Computação) em parceira com o LAWS (Laboratory of Advanced Web Systems), ambos da Universidade Federal do Maranhão. O segundo desenvolvido por Enio Lopes Sombra da Universidade do Estado do Rio Grande do Norte. 6.3.1. Descrição do Sistema A aplicação a ser desenvolvida, chamada de InteractOP, tem como objetivo secundário levar a todo telespectador do sistema de TVDI o conteúdo referente ao atual cenário do Orçamento Participativo da capital mineira – Belo Horizonte através de imagens, áudio e vídeos. O aplicativo em questão, vai permitir ao telespectador conhecer o programa do OP e participar de seu processo de eleição, 31 32 http://clube.ncl.org.br/node/81 http://gingarn.wikidot.com/local--files/gingancl/aplicacao_ncl_supermercado.rar 35 onde através da tela de opções ele poderá selecionar dentre as obras disponíveis, a que mais lhe interessa ser aprovada. O InteractOp poderá ser operado através de qualquer televisor que possua um conversor digital com o middleware GINGA instalado, e devido sua simplicidade, permite que até mesmo usuários que não tenham qualquer conhecimento tecnológico possam interagir. Utilizando funções do controle remoto, será possível navegar entre telas, visualizar detalhes das obras, informações de ajuda, entrar com dados do telespectador e realizar a votação. 6.3.2. Requisitos e atividades A aplicação deverá fazer uso do canal de retorno para valiadar o documento eleitoral do telespectador e enviar o dado relativo ao voto selecionado. A aplicação deve permitir que o usuário escolha o momento em que deseja iniciar a interação e realizar a votação. O item anterior será atendindo quando um botão relativo a esta ação for precionado no controle remoto. A aplicação exibirá o menu de obras, mas inicialmente não encerará a programação que estava sendo transmitida. Após interação, o teslespectador poderá a qualquer instante sair do aplicativo ou visualizar informações de ajuda. O sistema deve ser intuitivo e permitir que o usuário escolha de maneira fácil a obra de sua preferência. Estarão disponíveis 3( três ) opções de escolha para voto. No entanto, a obra e seus respectivos detalhes somente serão exibidos quando o botão de [ OK ] for acionado, consequentemente intenrropendo a programação assistida. Para votar o usuário utilizará os botões coloridos [ VERDE ], [ AMARELO ] e [ AZUL ], relativos a cada obra. As teclas numéricas do controle remoto serão utilizadas para digitação do número do documento requisitado para o voto. 36 Após a votação a aplicação é encerrada e a programação anterior volta ser transmitida. 6.3.3. Diagramas de Casos de Uso UML Os casos de uso que descrevem as funcionalidades proposta pela aplicação InteractOP para votação online, podem ser observados nos diagramas UML a seguir: Figura 9 - Caso de uso 01 Figura 10 - Caso de uso 02 37 Figura 11 Caso de uso 03 Figura 12 - Caso de uso 04 Figura 13 - Caso de uso 05 38 Figura 14 - Caso de uso 06 39 7. CONSIDERAÇÕES FINAIS Com este trabalho foi possivel reunir novas experiências e competências técnicas sobre as tecnologias em torno da TV Digital. Por se tratar de um assunto que apesar de boas iniciativas é tão pouco divulgado no país, torna-se desafiador e muito interessante pesquisar sobre o mesmo. Convém salientar que, por se tratar de uma nova tecnologia, a criação de suas aplicações está limitado às poucas ferramentas disponíveis, onde algumas delas ainda se encontram em fase experimental. Conclui-se, que a insercão do tema no ambiente acadêmico como proposta secundária desta monografia, foi atendida ao promever a discussão a cerca deste assunto durante sua avaliação. É certo que o estudo realizado é apenas uma pequena parte de uma área que a médio prazo tem grande potêncial de desenvolvimento. Para o presente trabalho, verfica-se que o principal objetivo de desenvolver um protótipo de aplicação interativa para a TVD seguindo as definições do middleware GINGA, tenha sido concluído. Porém, ainda não foi possível para este incrementar as questões que dependem da linguagem LUA, o que requer assim a continuação do trabalho. Este foi o maior problema encontrado no caso da aplicação de votação online, onde se faz necessário um canal de retorno estabelecido. Na verdade, resume-se em uma futura proposta, pois este estudo trata um tema ainda de fronteira, visto que no atual contexto da TV Digital aberta até agora não se encontra em operação o canal de interatividade necessário para a comunicação entre emissora e telespectador. Com base nos conhecimentos adquiridos, pode se observar uma vasta diversidade no que se diz respeito ao desenvolvimento de aplicações e soluções que refletem a diversidade cultural brasileira para a plataforma da televisão interativa. Ainda nesta linha de raciocínio, pode se também inferir que o sistema de Orçamento Participativo Digital através da TV, não será apenas mais uma inovação tecno-administrativa. E sim, algo maior que isto. Será um catalizador para a consolidação da busca da cidadania e da democratização das ações públicas e sociais. 40 7.1. Implementações Futuras Entre as possibilidades de futuros trabalhos para esse contexto, pode-se destacar a utilização dos novos recursos da televisão digital para o acesso às bases de dados governamentais. No que se diz respeito ao InteractOP, essa conexão será feita através da classe TCP que compõe eventos dos scripts em Lua. Visto que tal método já existe implementado no “Exemplo 6 – Consulta ao Google”33 criado por Francisco Sant'Anna, assim ficará mais fácil o estudo e sua reutilização neste aplicativo. A idéia será realizar acessos a base de dados do TRE-MG, levando em conta logicamente, um canal seguro de comunicação que garante a qualidade e veracidade do processo, impedindo, por exemplo, que o telespectador efetue mais de um voto por obra. 33 http://www.lua.inf.puc-rio.br/~francisco/nclua/tutorial/exemplo_06.html 41 REFERÊNCIAS BIBLIOGRÁFICAS ABNT, Associação Brasileira De Normas Técnicas. NBR 15606-1: Televisão digital terrestre – Codificação de dados e especificações de transmissão para radiodifusão digital Parte 1: Codificação de dados. 2ª Edição - Rio de Janeiro, Abril de 2010. ABNT, Associação Brasileira De Normas Técnicas. NBR 15606-2: Televisão digital terrestre – Codificação de dados e especificações de transmissão para radiodifusão digital Parte 2: Ginga-NCL para receptores fixos e móveis – Linguagem de aplicação XML para codificação de aplicações. Rio de Janeiro, Abril de 2008. BBC, British Broadcasting Corporation. Designing for Interactive Television v1.0. Inglaterra, 2005. Disponível em: <http://www.bbc.co.uk/guidelines/futuremedia/desed/itv/itv_design_v1_2006.pdf>. Acesso em: 15 abril 2011. DINIZ, E. H. et al. O governo eletrônico no Brasil: perspectiva histórica a partir de um modelo estruturado de análise. Revista Administração Pública [online], v. 43, n°. 1, p. 23-48, 2009. GAWLINSKI, MARK. Interactive Television Production. Oxford, England. Focal Press. Pag. 5, 2003 IBGE - Instituto Brasileiro de Geografia e Estatística. Censo Demográfico 2010. Disponível em: <http://www.ibge.gov.br/home/presidencia/noticias/noticia_visualiza.php?id_noticia= 1766>. acesso em 21 março de 2011. LEMOS, André. Anjos interativos e retribalização do mundo. Sobre interatividade e interafaces digitais. Disponível em: <http://www.facom.ufba.br/ciberpesquisa/lemos/interativo.pdf>. Acesso em: 17 maio de 2011. MONTEZ, C.; BECKER, V. TV Digital Interativa: Conceitos e Tecnologias. Conference. Ribeirão Preto, SP, Outubro de 2004. MONTEZ, C.; BECKER, V. TV digital interativa: conceitos, desafios e perspectivas para o Brasil. 2. ed. Florianópolis: Ed. da UFSC, 2005. NIELSEN, Jacob. Usability Engineering. Boston, Academic Press, 1993. PICCIONI, C. A.; BECKER, V.; MONTEZ, C. Uma aplicação de governo eletrônico usando televisão digital interativa. Disponível em: <http://www.itvproducoesinterativas.com.br/pdfs/A-Conegov%2020051.pdf>. Acesso em: 17 maio de 2011. 42 RODRIGUES, R. Produção de Conteúdo Declarativo para TV Digital. Brasil: SBC, 2006. Disponível em: <http://natalnet.dca.ufrn.br/sbc2006/pdf/arq0063.pdf>. Acesso em: 17 maio de 2011. 43 ANEXO 1: Interfaces do Sistema Figura 15 - Botão de interatividade, inicializador da aplicação. Figura 16 - Tela de apresentação inicial. 44 Figura 17 - Detalhes da obra. Figura 18 - Validação do telespesctador. 45 ANEXO 2: Códigos fonte NCL do InteractOP – Arquivo “main.ncl” <?xml version="1.0" encoding="ISO-8859-1"?> <ncl xsi:schemaLocation="http://www.ncl.org.br/NCL3.0/EDTVProfile http://www.ncl.org.br/NCL3.0/profiles/NCL30EDTV.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile" id="InteractOp"> <head> <!-- BASE DE REGIÕES: define as regiões na tela onde as mídias são apresentadas--> <regionBase> <region zIndex="2" id="rgTV" width="100.0%" height="100.0%"/> <region zIndex="3" id="rgAcesso" left="65.0%" top="3.0%" width="29.0%" height="13.0%"/> <region zIndex="1" id="rgBackground" width="100.0%" height="100.0%"> <region zIndex="1" id="rgBHMapa" left="0.0%" top="0.0%" width="50.0%" height="100.0%"> <region id="rgOpcao1" left="60.0%" top="74.0%" width="27.0%" height="7.0%"/> <region id="rgOpcao2" left="60.0%" top="82.0%" width="27.0%" height="7.0%"/> <region id="rgOpcao3" left="60.0%" top="90.0%" width="27.0%" height="7.0%"/> <region id="rgBtn1" left="50.0%" top="74.0%" width="8.0%" height="7.0%"/> <region id="rgBtn2" left="50.0%" top="82.0%" width="8.0%" height="7.0%"/> <region id="rgBtn3" left="50.0%" top="90.0%" width="8.0%" height="7.0%"/> </region> <region id="rgInteractOp" left="45.0%" top="2.0%" width="40.0%" height="15.0%" zIndex="2"/> <region zIndex="2" id="rgObraDetalhe" left="44.5%" top="43.5%" width="25.0%" height="55.0%"/> <region zIndex="2" id="rgObraMapa" left="45.0%" top="2.0%" width="45.0%" height="40.0%"/> <region id="rgObraImagem" left="70.0%" top="43.5%" width="29.0%" height="55.0%"/> <region id="rgInfo" left="93.0%" top="2.0%" width="5.5%" height="9.0%"/> <region id="rgVoltar" left="93.0%" top="13.0%" width="5.5%" height="9.0%"/> </region> </regionBase> <!--BASE DE DESCRITORES: define como as mídias são apresentadas--> 46 <descriptorBase> <!-- Video do Inicio --> <descriptor id="dVideoInicial" region="rgBackground" /> <!-- Imagem de Plano de Fundo --> <descriptor id="dInteractOp" region="rgInteractOp"/> <descriptor id="dPlanoFundo" region="rgBackground"/> <!-- Imagens dos Botões --> <descriptor id="dBtnInfo" region="rgInfo"/> <descriptor id="dBtnVoltar" region="rgVoltar"/> <descriptor id="dOpcao1" region="rgOpcao1" focusIndex="1" moveDown="2" moveUp="3" focusBorderWidth="-4" focusBorderColor="blue" selBorderColor="white" focusSelSrc="media/botoes/bntObra1Act.jpg"/> <descriptor id="dOpcao2" region="rgOpcao2" focusIndex="2" moveDown="3" moveUp="1" focusBorderWidth="-4" focusBorderColor="blue" selBorderColor="white" focusSelSrc="media/botoes/bntObra2Act.jpg"/> <descriptor id="dOpcao3" region="rgOpcao3" focusIndex="3" moveDown="1" moveUp="2" focusBorderWidth="-4" focusBorderColor="blue" selBorderColor="white" focusSelSrc="media/botoes/bntObra3Act.jpg"/> <descriptor id="dBtnVerde" region="rgBtn1"/> <descriptor id="dBtnAmarelo" region="rgBtn2"/> <descriptor id="dBtnAzul" region="rgBtn3"/> <!--Detalhes da Obra--> <descriptor id="dMapBh" region="rgBHMapa"/> <descriptor id="dHtml" region="rgObraDetalhe"/> <descriptor id="dObraMap" region="rgObraMapa"/> <descriptor id="dImgObra" region="rgObraImagem"/> <descriptor id="dBtnAcesso" region="rgAcesso"/> <descriptor id="dVideoInfoOp"/> <descriptor id="dBtnVoltarMenu"/> </descriptorBase> <connectorBase> <importBase documentURI="ConnectorBase.ncl" alias="connect"/> </connectorBase> </head> <body> <!--PONTO DE ENTRADA: indica o componente onde o programa inicia--> <port component="videoInicial" id="port_videoInicial"/> <!--MÍDIAS: define o local dos arquivos de mídia e as associa com seus descritores--> <media id="settings" type="application/x-ginga-settings"> <property name="service.currentFocus"/> </media> <media id="videoInicial" src="media/videoAbertura.avi" descriptor="dVideoInicial"> <area id="aVideo1Imagem1" begin="15.0s" end="100.0s" /> <!-- âncora no vídeo que deve sincronizar a imagem --> <property name="bounds"/> <!-- atributo que será manipulado pelos elos --> </media> 47 <media id="btnAcesso" src="media/imgMsgInteract.jpg" descriptor="dBtnAcesso"> <area id="aImagem"/> <property name="bounds"/> </media> <!--Mídias da tela do menu de obras--> <media id="titulo" src="media/InteractOp.jpg" descriptor="dInteractOp"/> <media id="telaFundo" src="media/imgBGround.jpg" descriptor="dPlanoFundo"/> <media id="btnInfo" src="media/botoes/imgBtnInfo.jpg" descriptor="dBtnInfo"/> <media id="btnVoltar" src="media/botoes/imBtnVoltar.jpg" descriptor="dBtnVoltar"/> <media id="mapBHMenu" src="media/BHMapMenu.jpg" descriptor="dMapBh"/> <media id="opcao1" src="media/botoes/bntObra1.jpg" descriptor="dOpcao1"/> <media id="opcao2" src="media/botoes/bntObra2.jpg" descriptor="dOpcao2"/> <media id="opcao3" src="media/botoes/bntObra3.jpg" descriptor="dOpcao3"/> <!--escolha--> <media id="btnVerde" src="media/botoes/btnVerde.jpg" descriptor="dBtnVerde"/> <media id="btnAmarelo" src="media/botoes/btnAmarelo.jpg" descriptor="dBtnAmarelo"/> <media id="btnAzul" src="media/botoes/btnAzul.jpg" descriptor="dBtnAzul"/> <media id="voto" src="media/imgVoto.jpg" descriptor="dMapBh"/> <!-- Contextos das obras, contendo suas respectivas mídias --> <media id="mapBHobra1" src="media/obras/mapBhObr1.jpg" descriptor="dMapBh"/> <media id="mapBHobra2" src="media/obras/mapBhObr2.jpg" descriptor="dMapBh"/> <media id="mapBHobra3" src="media/obras/mapBhObr3.jpg" descriptor="dMapBh"/> <context id="ctxObra1"> <port id="prtHtmlObra1" component="htmlObra1"/> <port id="prtMapObr1" component="mapObr1"/> <port id="prtVideoObr1" component="videoObr1"/> <media id="htmlObra1" src="media/obras/htmObra1.html" descriptor="dHtml"/> <media id="mapObr1" src="media/obras/mapObra1.jpg" descriptor="dObraMap"/> <media id="videoObr1" src="media/obras/videoObra1.mov" descriptor="dImgObra"/> </context> <context id="ctxObra2"> <port id="prtHtmlObra2" component="htmlObra2"/> <port id="prtMapObr2" component="mapObr2"/> <port id="prtVideoObr2" component="videoObr2"/> <media id="htmlObra2" src="media/obras/htmObra2.html" descriptor="dHtml"/> 48 <media id="mapObr2" src="media/obras/mapObra2.jpg" descriptor="dObraMap"/> <media id="videoObr2" src="media/obras/videoObra2.mov" descriptor="dImgObra"/> </context> <context id="ctxObra3"> <port id="prtHtmlObra3" component="htmlObra3"/> <port id="prtMapObr3" component="mapObr3"/> <port id="prtVideoObr3" component="videoObr3"/> <media id="htmlObra3" src="media/obras/htmObra3.html" descriptor="dHtml"/> <media id="mapObr3" src="media/obras/mapObra3.jpg" descriptor="dObraMap"/> <media id="videoObr3" src="media/obras/videoObra3.mov" descriptor="dImgObra"/> </context> <!-- Chamada de Atribuição de valores aos contextos --> <link xconnector="connect#onEndAttNodeTestStartNStopN" id="lnkCtxObra1"> <bind role="onEnd" component="settings" interface="service.currentFocus"/> <bind role="attNodeTest" component="settings" interface="service.currentFocus"> <bindParam name="value" value="1"/> </bind> <bind role="stop" component="ctxObra2"/> <bind role="stop" component="ctxObra3"/> <bind role="start" component="ctxObra1"/> </link> <link xconnector="connect#onEndAttNodeTestStartNStopN" id="lnkCtxObra2"> <bind role="onEnd" component="settings" interface="service.currentFocus"/> <bind role="attNodeTest" component="settings" interface="service.currentFocus"> <bindParam name="value" value="2"/> </bind> <bind role="stop" component="ctxObra1"/> <bind role="stop" component="ctxObra3"/> <bind role="start" component="ctxObra2"/> </link> <link xconnector="connect#onEndAttNodeTestStartNStopN" id="lnkCtxObra3"> <bind role="onEnd" component="settings" interface="service.currentFocus"/> <bind role="attNodeTest" component="settings" interface="service.currentFocus"> <bindParam name="value" value="3"/> </bind> <bind role="stop" component="ctxObra1"/> <bind role="stop" component="ctxObra2"/> <bind role="start" component="ctxObra3"/> </link> <!--Envento de inicialização dos contextos--> 49 <link xconnector="connect#onSelectionStartNStopN" id="StartContextObra1"> <bind role="onSelection" component="opcao1"/> <bind role="stop" component="ctxObra2"/> <bind role="stop" component="ctxObra3"/> <bind role="stop" component="mapBHobra2"/> <bind role="stop" component="mapBHobra3"/> <bind role="stop" component="btnAmarelo"/> <bind role="stop" component="btnAzul"/> <bind role="stop" component="videoInicial"/> <bind role="stop" component="titulo"/> <bind role="start" component="ctxObra1"/> <bind role="start" component="mapBHobra1"/> <bind role="start" component="btnVerde"/> </link> <link xconnector="connect#onSelectionStartNStopN" id="StartContextObra2"> <bind role="onSelection" component="opcao2"/> <bind role="stop" component="ctxObra1"/> <bind role="stop" component="ctxObra3"/> <bind role="stop" component="mapBHobra1"/> <bind role="stop" component="mapBHobra3"/> <bind role="stop" component="btnVerde"/> <bind role="stop" component="btnAzul"/> <bind role="stop" component="videoInicial"/> <bind role="stop" component="titulo"/> <bind role="start" component="ctxObra2"/> <bind role="start" component="mapBHobra2"/> <bind role="start" component="btnAmarelo"/> </link> <link xconnector="connect#onSelectionStartNStopN" id="StartContextObra3"> <bind role="onSelection" component="opcao3"/> <bind role="stop" component="ctxObra1"/> <bind role="stop" component="ctxObra2"/> <bind role="stop" component="mapBHobra1"/> <bind role="stop" component="mapBHobra2"/> <bind role="stop" component="btnVerde"/> <bind role="stop" component="btnAmarelo"/> <bind role="stop" component="videoInicial"/> <bind role="stop" component="titulo"/> <bind role="start" component="ctxObra3"/> <bind role="start" component="mapBHobra3"/> <bind role="start" component="btnAzul"/> </link> <!--Evento de inicialização do video de apresentação inicializa também o botão 'Menu'--> <link xconnector="connect#onBeginStart"> <bind role="onBegin" component="videoInicial" interface="aVideo1Imagem1"/> <bind role="start" component="btnAcesso"/> </link> <!--Evento de ativação do botão <RED> pausa o video de apresentação e inicia a layout de votação, ao selecionar tecla de interação <RED>, estando no componente VideoPrincipal --> <link xconnector="connect#AoSelecionarTeclaInteracao"> 50 <bind component="videoInicial" interface="bounds" role="set"> <!-- left, top, width, height --> <bindParam name="var" value="50%,25%,48%,70%"/> </bind> <bind component="btnAcesso" role="onSelection"> <bindParam name="keyCode" value="RED"/> </bind> <!--Evento de ativação do botão <RED> finaliza o botão de acesso ao menu de obras--> <bind role="stop" component="btnAcesso"/> <bind role="start" component="telaFundo"/> <bind role="start" component="btnInfo"/> <bind role="start" component="btnVoltar"/> <bind role="start" component="mapBHMenu"/> <bind role="start" component="opcao1"/> <bind role="start" component="opcao2"/> <bind role="start" component="opcao3"/> <bind role="start" component="titulo"/> </link> <!--Evento de ativação do botão <VOLTAR> reinicializa o video de apresentação e finaliza a aplição--> <link xconnector="connect#AoSelecionarTeclaInteracao"> <bind component="videoInicial" interface="bounds" role="set"> <!-- left, top, width, height --> <bindParam name="var" value="0,0,100%,100%"/> </bind> <bind component="btnVoltar" role="onSelection"> <bindParam name="keyCode" value="BACK"/> </bind> <bind role="start" component="btnAcesso"/> <bind role="start" component="videoInicial"/> <bind role="stop" component="ctxObra1"/> <bind role="stop" component="ctxObra2"/> <bind role="stop" component="ctxObra3"/> <bind role="stop" component="telaFundo"/> <bind role="stop" component="btnInfo"/> <bind role="stop" component="btnVoltar"/> <bind role="stop" component="mapBHMenu"/> <bind role="stop" component="opcao1"/> <bind role="stop" component="opcao2"/> <bind role="stop" component="opcao3"/> <bind role="stop" component="mapBHobra1"/> <bind role="stop" component="mapBHobra2"/> <bind role="stop" component="mapBHobra3"/> <bind role="stop" component="titulo"/> <bind role="stop" component="voto"/> </link> <!--VERDE--> <link xconnector="connect#onKeySelectionStartNStopN_2"> <bind component="btnVerde" role="onSelection"> <bindParam name="keyCode" value="GREEN"/> </bind> <bind role="stop" component="mapBHMenu"/> <bind role="stop" component="mapBHobra1"/> 51 <bind role="stop" component="btnVerde"/> <bind role="stop" component="opcao1"/> <bind role="stop" component="opcao2"/> <bind role="stop" component="opcao3"/> <bind role="start" component="voto"/> </link> <!--AMARELO--> <link xconnector="connect#onKeySelectionStartNStopN_2"> <bind component="btnAmarelo" role="onSelection"> <bindParam name="keyCode" value="YELLOW"/> </bind> <bind role="stop" component="mapBHMenu"/> <bind role="stop" component="mapBHobra2"/> <bind role="stop" component="btnAmarelo"/> <bind role="stop" component="opcao1"/> <bind role="stop" component="opcao2"/> <bind role="stop" component="opcao3"/> <bind role="start" component="voto"/> </link> <!--AZUL--> <link xconnector="connect#onKeySelectionStartNStopN_2"> <bind component="btnAzul" role="onSelection"> <bindParam name="keyCode" value="BLUE"/> </bind> <bind role="stop" component="mapBHMenu"/> <bind role="stop" component="mapBHobra2"/> <bind role="stop" component="btnAzul"/> <bind role="stop" component="opcao1"/> <bind role="stop" component="opcao2"/> <bind role="stop" component="opcao3"/> <bind role="start" component="voto"/> </link> </body> </ncl> Base De Conectores Arquivo “ConnectorBase.ncl” <?xml version="1.0" encoding="ISO-8859-1"?> <ncl id="composerConnBase" xmlns="http://www.ncl.org.br/NCL3.0/CausalConnectorProfile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ncl.org.br/NCL3.0/CausalConnectorProf ile http://www.ncl.org.br/NCL3.0/profiles/NCL30CausalConnector.xsd"> <head> <connectorBase> <!--@doc Ativação: Término de um nó de contexto, de alternativa ou de mídia (ou uma âncora de um nó de mídia) e o valor da propriedade que assume o papel attNodeTest sendo igual a $value (passado como parâmetro para o conector) 52 Ação: Inicia e termina N nós de contexto, de alternativa ou de mídia (ou uma âncora de um nó de mídia) de forma sequencial --> <causalConnector id="onEndAttNodeTestStartNStopN"> <connectorParam name="value"/> <compoundCondition operator="and"> <simpleCondition role="onEnd"/> <assessmentStatement comparator="eq"> <attributeAssessment role="attNodeTest" eventType="attribution" attributeType="nodeProperty"/> <valueAssessment value="$value"/> </assessmentStatement> </compoundCondition> <compoundAction operator="seq"> <simpleAction role="start" max="unbounded" qualifier="par"/> <simpleAction role="stop" max="unbounded" qualifier="par"/> </compoundAction> </causalConnector> <!--@doc Ativação: Seleção de um nó de contexto, de alternativa ou de mídia (ou uma âncora de um nó de mídia) com a tecla de seleção Ação: Inicia e termina N nós de contexto, de alternativa ou de mídia (ou uma âncora de um nó de mídia) --> <causalConnector id="onSelectionStartNStopN"> <simpleCondition role="onSelection"/> <compoundAction operator="seq"> <simpleAction role="start" max="unbounded" qualifier="par"/> <simpleAction role="stop" max="unbounded" qualifier="par"/> </compoundAction> </causalConnector> <!--@doc Ativação: Inicio de um nó de contexto, de alternativa ou de mídia (ou uma âncora de um nó de mídia) Ação: Inicia um nó de contexto, de alternativa ou de mídia (ou uma âncora de um nó de mídia) --> <causalConnector id="onBeginStart"> <simpleCondition role="onBegin"/> <simpleAction role="start"/> </causalConnector> <!--@doc Ativação: Ação: --> <causalConnector id="AoSelecionarTeclaInteracao"> <connectorParam name="var"/> <!-- caso seja pressionado alguma tecla --> <connectorParam name="keyCode"/> 53 <simpleCondition key="$keyCode" role="onSelection"/> <compoundAction operator="seq"> <!-- crie a regra start, stop e set --> <simpleAction max="unbounded" qualifier="par" role="stop"/> <simpleAction max="unbounded" qualifier="par" role="start"/> <simpleAction role="set" value="$var"/> </compoundAction> </causalConnector> <!--@doc Ativação: versão 2 Seleção de um nó de contexto, de alternativa ou de mídia (ou uma âncora de um nó de mídia) com a tecla $keyCode passada como parâmetro para o conector Ação: Inicia e termina N nós de contexto, de alternativa ou de mídia (ou uma âncora de um nó de mídia) de forma sequencial --> <causalConnector id="onKeySelectionStartNStopN_2"> <connectorParam name="keyCode"/> <simpleCondition role="onSelection" key="$keyCode" max="unbounded" qualifier="or"/> <compoundAction operator="seq"> <simpleAction role="stop" max="unbounded" qualifier="seq"/> <simpleAction role="start" max="unbounded" qualifier="seq"/> </compoundAction> </causalConnector> </connectorBase> </head> </ncl>