1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| void* mPlayerThread (void* params)
{
int pidThread = fork();
if (pidThread == 0)
{
//mPlayer
//Connection des pipes
//sortie d'érreurs
dup2(pipeErr[1], 2);
close(pipeS[1]); // ferme le pipe d'écriture
dup2(pipeS[0], 0); // connecte le pipe de lecture au stdin
close(pipeS[0]); // ferme le pipe de lecture
close(pipeE[0]); // ferme le pipe de lecture pour les informations de retour
//dup2(pipeE[1],1); // connecte le pipe d'écriture au stdout
close(pipeE[1]); // ferme le pipe d'écriture pour les informations de retour
//Lance le mPlayer
execlp("mplayer", "mplayer", "-slave", "-quiet", piste, "-display :0.1", NULL);
std::cout << "Lancement du MPlayer échoué !!!" << std::endl;
} else
{
//Pilote mPlayer
close(pipeS[0]); // ferme le pipe en lecture
close(pipeE[1]); // ferme le pipe en écriture pour le retour d'informations
int statut;
int options = 0;
waitpid(pidThread, &statut, options);
std::cout << "Fin d'éxécution du mplayer" << std::endl;
objLecteur->mPlayerEnd();
objLecteur->askSuivante();
}
} |