10/12/11

Assistindo TV Digital do Brasil no VLC

Hoje comprei um adaptador (dongle) de TV digital Full-seg, com esperança de assistir ou gravar o Jornal da Globo e qualquer outro programa que eu quiser. Isso é especialmente útil para mim, pois trabalho o dia todo e não tenho como assistir Vale a Pena Ver de Novo. Mas agora, meus problemas se acabaram-se! :D
Comprei o Zagg EasyTV Fullseg, que vem com o ArcSoft TotalMedia para assistir e faz as vezes de DVR/PVR. Instalando no Windows 7 x64 não tive problemas, consegui pegar todos os canais disponíveis em Florianópolis com sinal bom.
Não tive a mesma sorte com o Windows Media Center. Ele reconhece o receptor, e inclusive baixa a programação (ou pelo menos diz que baixa), mas nada de achar os canais.
Curioso, abri o VLC e olhei as opções de recepção de fluxos, e eis que o bicho achou o receptor de TV digital! Testei com a Globo, e consegui pegar o sinal perfeitamente. Falta testar a gravação agendada, porque a interface do VLC é meio triste de usar (blast you, open source!).
Usando os dados da Wikipedia, e usando o formato DVB-T com largura de banda 6MHz, consegui recepção. Pra tirar dúvidas, vou desenhar:

  1. Abra o VLC, e vá no Menu "Mídia"-> "Abrir dispositivo de captura...";
  2.  Na aba "Dispositivos":
    1. escolha o modo de captura "DVB Directshow";
    2.  Selecione "Tipo de DVB" = "DVB-T";
    3. Escreva a frequência do canal no campo frequência;
    4.  Escolha "Largura de Banda"="6MHz" (achei por acaso, se tiveres uma explicação melhor favor contribuir nos comentários);
    5. Aperte o botão "Reproduzir";
    6. ??????
    7. Justin Bieber em todo seu esplendor rosa!

3/3/11

Richfaces e function rich:component not found

Imagine que você está usando richfaces e seguindo exemplos como o disponível em http://livedemo.exadel.com/richfaces-demo/richfaces/inplaceInput.jsf?c=inplaceInput&tab=usage, que usam funções úteis como rich:component('...'). Se você tiver sorte, como eu, e alguma lua não estiver alinhada corretamente, você poderá se deparar com o seguinte erro:

... function rich:component not found ...
Há várias soluções propostas para este problema, desde adicionar richfaces-ui.jar à pasta WEB-INF/lib do seu WAR, ou usar um managedBean da classe org.richfaces.function.RichFunction e usar as funções do modo richFunction.component.
Porém, uma rápida olhada no código-fonte da classe RichFunction revela o que o que o método component faz:
... return "document.getElementById('" + clientId + "')"; ...
Ou seja, o que o backing bean faz equivale a um simples document.getElementById('idDoComponente')".

Assim, no exemplo escolhido:
onmousedown="#{rich:component('inplaceInput')}.save();" vira
onmousedown="document.getElementByID('inplaceInput').save();".

Note que o ID do componente gerado pelo JSF normalmente inclui o ID do formulário no qual este está inserido. Se o formulário tiver ID="form", o ID do componente vira "form:inplaceInput".
tchem.