Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

telemidia.puc.rio.br
from telemidia.puc.rio.br More from this publisher
11.07.2015 Views

mídia. Ele deve ser capaz apenas de apresentar o mapa de memória de vídeoque lhe é passado e exibir as amostras de áudio que lhe são passadas. Oexibidor de cada objeto de mídia, nesse caso, será executado por umdispositivo de execução (chamado dispositivo pai), que é responsável pelacriação do mapa e do conjunto de amostras de áudio que embute aapresentação dos objetos.O mapa criado (ou a sequência de amostras de áudio criada) pelodispositivo pai, para os dispositivos em classe passiva que comanda, podetambém ser exibido no próprio dispositivo pai. Para tanto, uma região nodispositivo pai deve ser referenciada pelo elemento , através deseu atributo region, que define a classe passiva. Devemos ressaltar que oatributo region de um elemento só terá algum sentido quandoesse elemento estiver associado a uma classe do tipo “passiva”.Uma classe ativa deve especificar quais exibidores devem estardisponíveis em todos os seus dispositivos cadastrados.Algumas simplificações foram definidas para esse procedimento. Entreelas é assumido que, quando existir apenas um dispositivo de exibição, elenão precisa se cadastrar. Na verdade, o dispositivo-base tem uma classe(ativa) só para ele, em que nenhum outro dispositivo pode se cadastrar, e essaclasse não precisa ser declarada. As classes “systemScreen (1)” ou“systemAudio(1)” são reservadas como classes passivas e as classes“systemScreen (2)” ou “systemAudio(2)” como classes ativas, onde todos osseus dispositivos de exibição cadastrados são capazes de executar todos osexibidores de objetos mídia especificados pelo sistema que adotou a NCLcomo linguagem, incluindo os exibidores de objetos imperativos, funcionais ehipermídia declarativos.Qualquer que seja o tipo de classe, passiva ou ativa, seus dispositivos deexibição só podem exibir objetos de mídia vindos de um mesmo dispositivo,chamado “dispositivo pai”. Uma classe não pode ter mais de um dispositivopai em um dado momento. Mais ainda, o “dispositivo-base” não pode receberobjetos (diretamente ou embutidos em mapas de memória/amostras de áudio),para exibir, de outro dispositivo exibidor do domínio. Em outras palavras,não há possibilidade de um dispositivo ser ascendente ou descendente de simesmo, formando ciclos.15.1.2 Comportamento dos Dispositivos de EntradaNo início de uma apresentação, todos os dispositivos de entradaassociados ao domínio dos dispositivos do documento NCL que especifica aaplicação são controlados pelo dispositivo-base.324

Quando um elemento em exibição por um dispositivoregistrado em uma classe ativa receber o foco e for selecionado, o exibidor deseu conteúdo ganha o controle de todos os dispositivos de entrada do mesmoaparelho do dispositivo de exibição e dos dispositivos de entrada de todos osdispositivos que estão em classes que serão suas descendentes. O exibidorpode, então, seguir suas próprias regras para navegação. O controle dosdispositivos de entrada é devolvido ao dispositivo pai quando a tecla demnemônico “BACK” for pressionada. Nesse caso, o foco vai para o elementoidentificado pelo atributo service.currentFocus do nó settings (elemento do tipo application/x-ncl-settings) em exibição controlada pelodispositivo pai.Devemos notar que pode haver mais de um dispositivo com controle denavegação por teclas, mas cada um com dispositivos de entrada diferentes dosoutros.De posse de todas as informações desta Seção 15.1, podemos agoraanalisar as várias alternativas para exibição em múltiplos dispositivos.15.2 Comportamento de Dispositivos na ClassePassivaComo comentamos anteriormente, no caso de uma classe passiva, todo oprocessamento de um exibidor de mídia estará a cargo de um dispositivo deexibição capaz de executar exibidores de objetos de mídia, que chamamos dedispositivo pai.Nesse caso, o dispositivo pai se comunica com os dispositivos deexibição da classe (dispositivos filhos) passando ou o mapa de memória doplano de exibição (frame buffer), no caso de dispositivos visuais, ou amostrasde áudio, no caso de dispositivos com saída sonora. Um dispositivo deexibição visual deve apenas ser capaz de varrer a matriz e apresentar ospixels correspondentes em sua tela. Um dispositivo de exibição sonora deveapenas ser capaz de varrer e apresentar as amostras de áudio na caixa desom.Ainda que mais de um dispositivo de exibição seja associado a umamesma classe, quando um elemento for exibido nessa classe, apenasuma única instância de exibição deve ser criada (no dispositivo pai) ecompartilhada por todos os dispositivos. No jargão do modelo NCM, umobjeto de representação único é criado e exibido em todos os dispositivosfilhos.É importante salientarmos que não existe zIndex para os mapas dememória/amostras de áudio nos dispositivos filhos. Todos são exibidos com325

mídia. Ele deve ser capaz apenas de apresentar o mapa de m<strong>em</strong>ória de vídeoque lhe é passado e exibir as amostras de áudio que lhe são passadas. Oexibidor de cada objeto de mídia, nesse caso, será executado por umdispositivo de execução (chamado dispositivo pai), que é responsável pelacriação do mapa e do conjunto de amostras de áudio que <strong>em</strong>bute aapresentação dos objetos.O mapa criado (ou a sequência de amostras de áudio criada) pelodispositivo pai, para os dispositivos <strong>em</strong> classe passiva que comanda, podetambém ser exibido no próprio dispositivo pai. Para tanto, uma região nodispositivo pai deve ser referenciada pelo el<strong>em</strong>ento , através deseu atributo region, que define a classe passiva. Dev<strong>em</strong>os ressaltar que oatributo region de um el<strong>em</strong>ento só terá algum sentido quandoesse el<strong>em</strong>ento estiver associado a uma classe do tipo “passiva”.Uma classe ativa deve especificar quais exibidores dev<strong>em</strong> estardisponíveis <strong>em</strong> todos os seus dispositivos cadastrados.Algumas simplificações foram definidas para esse procedimento. Entreelas é assumido que, quando existir apenas um dispositivo de exibição, elenão precisa se cadastrar. Na verdade, o dispositivo-base t<strong>em</strong> uma classe(ativa) só para ele, <strong>em</strong> que nenhum outro dispositivo pode se cadastrar, e essaclasse não precisa ser declarada. As classes “syst<strong>em</strong>Screen (1)” ou“syst<strong>em</strong>Audio(1)” são reservadas como classes passivas e as classes“syst<strong>em</strong>Screen (2)” ou “syst<strong>em</strong>Audio(2)” como classes ativas, onde todos osseus dispositivos de exibição cadastrados são capazes de executar todos osexibidores de objetos mídia especificados pelo sist<strong>em</strong>a que adotou a <strong>NCL</strong>como linguag<strong>em</strong>, incluindo os exibidores de objetos imperativos, funcionais ehipermídia declarativos.Qualquer que seja o tipo de classe, passiva ou ativa, seus dispositivos deexibição só pod<strong>em</strong> exibir objetos de mídia vindos de um mesmo dispositivo,chamado “dispositivo pai”. Uma classe não pode ter mais de um dispositivopai <strong>em</strong> um dado momento. Mais ainda, o “dispositivo-base” não pode receberobjetos (diretamente ou <strong>em</strong>butidos <strong>em</strong> mapas de m<strong>em</strong>ória/amostras de áudio),para exibir, de outro dispositivo exibidor do domínio. Em outras palavras,não há possibilidade de um dispositivo ser ascendente ou descendente de simesmo, formando ciclos.15.1.2 Comportamento dos Dispositivos de EntradaNo início de uma apresentação, todos os dispositivos de entradaassociados ao domínio dos dispositivos do documento <strong>NCL</strong> que especifica aaplicação são controlados pelo dispositivo-base.324

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!