Cara, <br><br>O loop não é boa opção, dê uma olhada no POE ou AnyEvent. Você simplesmente registra uma função numa vila e o sistema faz o resto ....<br><br>Solli M. Honório<br><br><div class="gmail_quote">Em 26 de março de 2010 15:37, Geraldo Netto <span dir="ltr"><<a href="mailto:geraldonetto@gmail.com">geraldonetto@gmail.com</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Opa!<br>
<br>
Interessante Solli,<br>
na realidade, eu me considero newbie, principalmente em perl, eheheh :P<br>
eu também gostei da ideia do loop...<br>
<br>
btw, por hora eu tenho isso:<br>
<br>
#!/usr/bin/perl<br>
#use warnings;<br>
#use strict;<br>
use Audio::Mixer;<br>
use DateTime;<br>
use Tk;<br>
<br>
my $dt = DateTime->now;<br>
my $dth = $dt->hour;<br>
my $dtm = $dt->minute;<br>
my $dts = $dt->second;<br>
<br>
# volume increment (+ to increase, - to decrease)<br>
my $increment = -10;<br>
<br>
# time step<br>
my $step = 10;<br>
<br>
my $v = 50;<br>
my $volume = Audio::Mixer::get_cval( 'vol' );<br>
<br>
my $mw = MainWindow->new;<br>
$mw->title('Sound Minimiser');<br>
my $lbltitle = $mw->Label(-text=>'Sound Minimiser<br>
'.$version)->pack(-anchor=>'w');<br>
my $lblcurtime = $mw->Label(-text=>'Current Time:<br>
'.$dth.':'.$dtm.':'.$dts)->pack(-anchor=>'w');<br>
my $lblnewtime = $mw->Label(-text=>'New Time:<br>
'.$dth.':'.($dtm+$step).':'.$dts)->pack(-anchor=>'w');<br>
my $lblos = $mw->Label(-text=>'Operating System: '.$^O)->pack(-anchor=>'w');<br>
my $lblcurvol = $mw->Label(-text=>'Current volume:<br>
'.$volume)->pack(-anchor=>'w');<br>
my $lblvolinc = $mw->Label(-text=>'Volume increment:')->pack(-anchor=>'w');<br>
my $txtvolinc = $mw->Entry(-textvariable=>\$increment)->pack(-anchor=>'e');<br>
my $lbltimestp = $mw->Label(-text=>'Time step:')->pack(-anchor=>'w');<br>
my $txtstep = $mw->Entry(-textvariable=>\$step)->pack(-anchor=>'e');<br>
my $btnexit = $mw->Button(-text=>'Exit',<br>
-command=>sub{exit})->pack(-anchor=>'center');<br>
<br>
MainLoop;<br>
<br>
if ( Audio::Mixer::set_cval( 'vol', $v, $v ) ) {<br>
die("Can't set volume...");<br>
}<br>
<br>
na pratica só faz 2 coisas: desenhar a gui e colocar o volume em 50%<br>
btw, eventualmente se alguem tiver alguma sugestão,<br>
elas definitivamente serão bem vindas!<br>
<br>
ah, uma coisa curiosa,<br>
pelos testes que eu fiz, o datetime usa<br>
a mesma fonte de informação do hwclock(hardware)<br>
e o meu kubuntu 9.10 reporta o horario errado<br>
por causa disso...<br>
na realidade eu já corrigi o problema forçando<br>
a configuração do hwclock no boot, mas por<br>
um acaso teria alguma outra forma de usar<br>
o datetime(ou qualquer outro modulo) que pegue<br>
o horario do software e não o do hardware<br>
como faz o hwclock?<br>
<br>
como sempre, obrigado mesmo!<br>
<br>
Abraços,<br>
<div class="im"><br>
Geraldo<br>
Non dvcor, dvco => Sapere Aude<br>
São Paulo, Brasil, -3gmt<br>
site: <a href="http://exdev.sf.net/" target="_blank">http://exdev.sf.net/</a><br>
github: <a href="http://github.com/geraldonetto" target="_blank">http://github.com/geraldonetto</a><br>
msn: <a href="mailto:geraldo_boca@hotmail.com">geraldo_boca@hotmail.com</a><br>
skype: geraldo-netto<br>
icq: 145-061-456<br>
<br>
</div>2010/3/26 Solli Honorio <<a href="mailto:shonorio@gmail.com">shonorio@gmail.com</a>>:<br>
<div><div></div><div class="h5">> Não dá para saber se existe uma maneira 'melhor' se eu não sei qual maneira<br>
> você está fazendo .... mas sei que vc tem um bom conhecimento de<br>
> programação, sabe que isto depende de qual tecnologia vc está utilizando. Se<br>
> vc estiver utilizando um processo baseado em evento/schedule (o POE e o<br>
> AnyEvent são ótimos exemplos para isto e eu acho que cai bem no que vc está<br>
> fazendo), você terá que criar e gerenciar uma fila de eventos. Se você<br>
> tiver utilizando tecnologia de processamento paralelo, então threads e forks<br>
> é a maneira. Se vc tiver apenas criando um loop poderá executar a<br>
> atualização a cada loop....<br>
><br>
> Solli M. Honório<br>
><br>
> Em 26 de março de 2010 06:25, Geraldo Netto <<a href="mailto:geraldonetto@gmail.com">geraldonetto@gmail.com</a>><br>
> escreveu:<br>
>><br>
>> Pessoal,<br>
>><br>
>> eu tava mexendo no 'abaixador de volume temporizado' e<br>
>> agora, eu to procurando algum jeito atualizar na tela o horário<br>
>> e eu quero saber se existe um jeito melhor ou mais simples<br>
>> que lançar uma thread que fica atualizando o horário?<br>
>><br>
>> Inté!<br>
>><br>
>> Geraldo<br>
>> Non dvcor, dvco => Sapere Aude<br>
>> São Paulo, Brasil, -3gmt<br>
>> site: <a href="http://exdev.sf.net/" target="_blank">http://exdev.sf.net/</a><br>
>> github: <a href="http://github.com/geraldonetto" target="_blank">http://github.com/geraldonetto</a><br>
>> msn: <a href="mailto:geraldo_boca@hotmail.com">geraldo_boca@hotmail.com</a><br>
>> skype: geraldo-netto<br>
>> icq: 145-061-456<br>
>> _______________________________________________<br>
>> SaoPaulo-pm mailing list<br>
>> <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
>> <a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
><br>
><br>
><br>
> --<br>
> "o animal satisfeito dorme". - Guimarães Rosa<br>
><br>
> _______________________________________________<br>
> SaoPaulo-pm mailing list<br>
> <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
> <a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
><br>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>"o animal satisfeito dorme". - Guimarães Rosa<br>