Interessante, ma non vorrei mostrare agli utenti la console, ma estrarre i dati dalla stessa per delle elaborazioni in background (sapere lo stato della riproduzione di un file).
A questo punto pensavo di bypassare il problema passando da un oggetto "terzo" ed esterno (con il mio video convertitore batch basato su ffmpeg ho fatto in modo simile.)
ovvero, passare per un file esterno (un log) che scrive il processo lanciato dalla shell e che il programma gambas legge ed interpreta.
Ma mentre ffmpeg ha la possibilita di generare autonomamente un file di statistiche (e' una opzione del programma), in questo caso ho dovuto usare le redirezioni tipiche della bash linux.
in pratica il comando con redirezione e':
If Exist(User.Home & "/mlt_output.log") Then Kill (User.Home & "/mlt_output.log")
melt -profile dv_pal -timings -consumer decklink:0 terminate_on_pause=1 path_del_file_video &> /home/utente/mlt_output.log
ed in un timer leggo il contenuto con un tail o similare:
che (lanciando tutto da shell) mi tira fuori qualcosa del genere (varia man mano che interpreta il file):
| 2018-04-12 12:45:39.739 | consumer_decklink.cpp:803: T(render)=8340 us
ora pero' la cosa e' ancora piu' strana, perche' se le stesse IDENTICHE cose le lancio dal mio programma gambas:
comando = "melt -profile dv_pal -timings -consumer decklink:0 terminate_on_pause=1 " & Path & " &> " & User.Home & "/mlt_output.log"
Shell comando
il timer dove ho messo la lettura del file, mi ritorna il NULLA (giustamente, visto che ho cancellato il file prima di lanciare la NUOVA riproduzione)