Newsgroup: it.comp.os.linux.development
Titolo: Inviare pressioni di tasti ad un Task KDE

Ciao a tutti,
    devo lanciare da una GUI personale il lettore Mplayer.
Bene, questo si comanda con dei tasti come W/E/spazio/O/Frecce etc etc.
Vorrei poter mandare questi comandi dalla mia GUI. Non mi dilungo sul perché
e percome.
Ho visto che esiste un oggetto KProcess ed un oggetto similare QProcess su
QT.
Pare che si possa inviare delle stringhe alla "Stdin" e leggere gli output
della "Stdout".
Non sono esperto conoscitore del C né di Linux, ma ho provato, e il processo
lo lancio, solo che non riesco, dopo avere attivato la connessione a stdin
sul processi (proc->setconnection(0x01)), a inviare dati con
proc->writestdin (mi pare sia così).
cosa sbaglio? avete degli esempi?
stdin corrisponde per quel processo all'input da tastiera?
Grazie mille a tutti, ne ho veramente bisogno.
Se conoscete altri artifizi...
Osolemio

ciao , 
io non conosco molto qt , ma in c farei : 
FILE *pippo;
pippo = popen ( "mplayer" ,"w" );
fprintf ( pippo , "%c" , <num carattere da inviare> );
guarda la manpage di popen , è molto chiara.
ps: non è il massimo della sicurezza....
ciao.
-- 
-------------------------------------------------------------------------------
Il mio amico ha un bambino piccolo.  Sto mettendo per iscritto tutti i
rumori che fa, cosi' poi potro' chiedergli cosa volevano dire.
                -- Steven Wright
-------------------------------------------------------------------------------

 ps: non è il massimo della sicurezza....
Il problema e' che i comandi di cui parla non sono dati sulla shell, ma 
sono eventi X gestiti tramite la finestra grafica, quindi popen o 
kprocess possono far poco. La cosa migliore secondo me e` utilizzare il 
supporto LIRC di Mplayer (lirc e' lo standard per i telecomandi a 
infrarossi su seriale) e far comportare la propria gui come un "fake" 
lircd. Senno' puo' modificare direttamente mplayer, per ricevere i 
comandi per esempio tramite messaggi udp su una particolare porta...
Bye,
  Gabry

 comandi per esempio tramite messaggi udp su una particolare porta...
a parte il fatto che mplayer lanciato dalla riga di comando prende i comandi
dallo stdin ( io lo uso sempre cosi' ) l' idea di lirc non è male , pero'
io investigherei su come funzionano altre gui tipo kplayer o kmplayer ,
magari c'è un modo std per interfacciarsi ad mplayer.
ciao.
-- 
-------------------------------------------------------------------------------
Se ti trovi in un Dipartimento di Chimica, fai attenzione ad entrare
nelle stanze sulle cui porte sta scritto "WC":
potresti urinare su carburo di tungsteno.
                -- Andrea `Zuse' Balestrero
-------------------------------------------------------------------------------

 stdin corrisponde per quel processo all'input da tastiera?
mi č venuta in mente una cosa che ho letto nella manpage di mplayer:
       -slave
              This  option  switches  on slave mode.  This is in
              tended for use of MPlayer as  a  backend  to  other
              programs.  Instead of intercepting keyboard events,
              MPlayer will read simplistic command lines from its
              stdin.   The  section  SLAVE MODE PROTOCOL explains
              the syntax.
se tu fai una applicazione che lancia una pipe e ti scrivi dentro dovresto
poter pilotare mplayer

Ho risolto. Lirc è una bellissima cosa, ma non posso usarlo per diversi
motivi.
La soluzione era proprio la classe QProcess di QT, il problema era che la
definivo e usavo nel main.cpp (e non funzionava), mentre facendo lo stesso
nella mia classe principale che eredita QWidget e che lancio da main.cpp
(che poi esce) tutto va a meraviglia.
Ma solo se lancio mplayer con -slave, GRAZIE in particolare ad OTTAVIO
CAMPANA!!! :-) :-)
La popen non funzia, nemmeno con -slave. Ci ho perso un pò di tempo ma ho
mollato.
Grazie a tutti, mi avete incoraggiato nella testardaggine.
        Osolemio


 poter pilotare mplayer
Non ho fatto così, ma ho usato KProcess di QT.
Ciao, Osolemio