[ ŠargarepaMen @ 16.09.2005. 12:18 ] @
Dakle, imam jedno početničko pitanje. Što se tiče mojeg programerskog iskustva, poprilično je traljavo, mada znam neke osnovne stvari. Avaj, trenutno pokušavam da na Linuksu odradim mali program u sa FLTK GUI-jem (fltk verzija 1.1.6) koji prima midi signale sa sekvencera, i ispisuje ih u nekim tekst-boksovima i sl. Šta sam do sada uradio (naravno, uz pomoć raznih tutoriala i primera sa neta) - napravio sam jednostavan prozorčić u FLUID-u, meni, i dva displeja koja treba da ispisuju podatke o MIDI eventima, imam dva threada - GUI thread i thread koji detektuje midi signale (nisam napomenuo, koristim ALSA sequencer interfejs) i baca ih na gui. Sada da pređem na problematiku - sve je to fino, uradio sam da ispisuje u konzoli podatke o prihvaćenim MIDI eventima, i tamo stvari teku kako treba... Ali, podaci na fltk prozorčetu se refreshuju SAMO pod uslovom da pomeram kursor miša po površini prozora, ili da pritiskam neke shortcut tastere (shortcut tastere specijalno definisane za navedeni program). Kao očajnički potez, stavio sam da poziva redraw() prozora i svih živih komponenti posle svake promene, ali, logično, ništa se nije desilo, jer je i na početku bilo očito da je u nečemu drugom problem. Ali, kada sam stavio clock widget na prozor ;), prilikom svakog pomeraja kazaljke (znači, svake sekunde), sadržaj se refreshovao. Naravno, ovo je najpatetičniji mogući izgovor za rešenje mojeg problema. Dakle, ponoviću, služim se threadovima - jedan nacrta fltk prozor, a drugi prima midi signale, i menja displeje na guiju. Oba su poterana iz main() funkcije. Treba mi samo neki savet, pošto me zaista kopka... Kapiram da sam napravio neku bednu grešku, ali prosto nemam ideju šta. Samo da napomenem, fltk je prvi gui toolkit koji sam ikada koristio - do sada sam radio aplikacijice sa čisto tekstualnim ispisom na konzoli. Hvala unapred! |