3.12.2005

PREZENTACE OVLÁDANÁ TELEFONEM

Filed under: Linux,school — nax @ 12:34

Na předmět Nová média jsem potřeboval udělat presentaci toho co jsem zatím vytvořil a napadlo mne, že bych si mohl ochodit ovládání té presentace pomocí mobilního telefonu. Už jsem to jednou viděl na předloňském openweekendu kde mobil jako dálkové ovládání presentace používal Pavel Machek, kernelový to vývojář, toho času zaměstnanec SuSE (pardón, chtěl jsem říct Novellu). Jednou jsem s ním dělal rozhovor pro Terabajt a musím říci, že je to hodně dobrý člověk (ve smyslu anglického nice).

Za ten rok ale vývoj na tomto poli určitě musel trochu pokročit a tak jsem se dal do hledání zdrojů, jak že to ten Pavel tehdy udělal. Jako první jsem našel softík pro K750i, ale já mám bohužel telefon o kousek starší: T630. Hledal jsem trochu víc a našel třeba tohle. To se mi ale stejně nepodařilo rozchodit, až jsem se dostal přes stránku Sony Ericsson T630 and Linux na projekt tsemgr.

Ten umí kromě jiných věcí jako je zazálohovat smsky a telefonní seznam z telefonu do počítače, nebo opačně z počítače naplnit telefon, také jednu funkci nazvanou remote. Nejde o nic jiného, než že po spárováni (klasicky používám bluez) a klepnutí na tlačítko connect právě na kartě remote se vám do telefonu v sekci připojitelnost menu příslušenství objeví menu, které v tom programu (respektive v jeho konfigu ~/.tsemgr/tsemgr_remote.conf) definujete.

Každý příkaz z menu pak odpovídá nějakému příkazu shellu. Třeba pro xmms je už situace jasná a stačí zadefinovat položky třeba takhle:

0,root,xmms,
1,xmms,play,xmms-shell -e play
1,xmms,stop,xmms-shell -e stop

atd.

Ostatně tenhle příklad je uĹž v tom konfigu obsaĹžen. JenĹže co kdyĹž chci ovlĂĄdat aplikaci jako je třeba Acrobat Reader, nebo jako v mĂŠm případě pspresent (dělal jsem prezentaci v LaTeXu pomocĂ­ maker ha-prosper)? Potřeboval jsem něco, co by při nějakĂŠm příkazu shellu vygenerovalo event jako by byla stisknuta nějakĂĄ klĂĄvesa a poslalo jej XĹŻm. No a nebudu vĂĄs napĂ­nat, ale naĹĄel jsem dost dobrĂ˝ projektĂ­k android. JednĂĄ se o pokus udělat defakto makra prĂĄvě z eventĹŻ X11 a v podstatě by to mělo fungovat tak, Ĺže vy si nejdřív “nahrajete” svoje chovĂĄnĂ­ v X (kam jste klikli, jakou klĂĄvesu zmáčkli) a pak kdyĹž to spustĂ­te jako skript, tak se to odehraje znova. Kolega v prĂĄci mě asi před rokem říkal o něčem podobnĂŠm pro Windows, kde mĂĄ něco podobnĂŠho jeĹĄtě daleko větĹĄĂ­ ViĹžinĂĄm (kdo někdy programoval nějakĂŠ sloĹžitějĹĄĂ­ skripty třeba pro sprĂĄvu AD domĂŠny, tak mi dĂĄ nejspĂ­ĹĄ za pravdu, Ĺže to uĹž by muselo bĂ˝t sakra velkĂĄ Ăşspora času aby se to nevyplatilo prostě naklikat v těch prĹŻvodcĂ­ch). Kolega prĂ˝ měl kolegu, co takhle odeĹĄel na oběd, pustil tohle udělĂĄtko a neĹž se vrĂĄtil, tak měl pĹŻlku dennĂ­ prĂĄce hotovou. No nevĂ­m. JĂĄ bych se asi bĂĄl, Ĺže se vrĂĄtĂ­m a budu mĂ­t naformĂĄtovanĂ˝ počítač (ono kdyby ve vhodnĂ˝ okamĹžik na vhodnĂŠ mĂ­sto vyskočila nečekaně vhodnĂĄ hlĂĄĹĄka 😉

Nicméně abych se vrátil k tématu. Po asi třetí instalaci (android totiž není dostupný v emerge balíčkovacím systému mého Gentooo, tak jsem měl trochu problémy s cestami), ale nakonec se povedlo a udělal jsem si takovéhle skriptíky:

$ cat ~/bin/prosper/vpred 
#!/usr/bin/wish
wm withdraw .
set failures 0
package require android
proc waitfor_window { name { howlong 60 } } {
  set result ""
  while 1 { 
    catch { set result [ exec xwininfo -name $name ] } error
    if [ string equal "" $result ] {
      if { $howlong == 0 } { return 0 }
      incr howlong -1
      after 1000
      continue
    }
    regexp {Window id: (0x[0-9a-f]*)} $result -> id
    return $id
  }
}
send_xevents key Right

# report and exit
#puts "Total failures: $failures"
exit

V podstatě je to celé nějaký příklad, který jsem sebral v distribuci android, jediný zajímavý je tenhle řádek:
send_xevents key Right

Tady to stačí změnit na
send_xevents key Left
a mĂĄte skript vzad. V tom konfigu tsemgr_remote.conf jsem pak zadefinoval tohle:

0,root,prosper,
1,prosper,Dalsi,/home/nax/bin/prosper/vpred
1,prosper,Predchozi,/home/nax/bin/prosper/zpet

No a zase se můžu chlubit o něco lepším prezentátorským uměním. Mimochodem cvičícímu se to vážně líbilo a za prezentaci jsem nejen tedy kůli tomuhle dostal plný počet.

Comments are closed.

Powered by WordPress