IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Bi écran et C++


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Par défaut Bi écran et C++
    Bonjour,
    Voila mon souci. Je dois réalisé un projet multimédia qui fonctionne avec 2 écrans.
    Le premier écran ne sert qu'à afficher des menus, le second sert à l'affichage de vidéos.
    Donc le menu est fait en C++/SDL, et la lecture des vidéos est sous traitée à mplayer.

    Donc je lance mplayer pour lire un fichier multimédia comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execlp("mplayer", "mplayer", "-slave", "-quiet", piste, NULL);
    Mais je ne sais pas comment lui indiquer d'afficher la vidéo sur le DISPLAY :0.1.
    J'ai déja chercher sous google mais je ne trouve que des commandes shell.
    Donc j'aimerai savoir si c'est possible à réalisé, et de quelle manière.

    Merci d'avance.

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Par défaut
    J'ai fait un nouvel éssai en passant en paramêtre -display :0.1
    La commande tapée directement dasn un terminal fonctionne à merveille.
    Mais des que j'inclut l'option dans execlp() le lecteur se lance mais ne prend en compte aucune option .

    Le plus simple serait que vous voyez le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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();
         	}
     
    }
    Les pipes servent à passé des ordres au mplayer.

    et voici ce que j'ai en retour :
    MPlayer 2:0.99+1.0pre7try2+cvs20060117-0ubuntu8 (C) 2000-2006 MPlayer Team
    CPU: Intel Pentium 4/Celeron 4 Northwood; Pentium 4 EE/Xeon Prestonia,Gallatin (Family: 15, Stepping: 9)
    CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
    Compiled with runtime CPU detection.

    Fin d'éxécution du mplayer

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Par défaut Moyen de substitution
    Vu que je n'arrive pas à lancer l'application sur l'autre écranà partir de mon logiciel, je vais faire une application esclave sur le second écran pour gerer le mplayer.

    Chaque application sera lancé lors de la commande startx (c'est voulu, je ne me sert pas du windows manager).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #!/bin/sh
    # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
     
    # /etc/X11/xinit/xinitrc
    #
    # global xinitrc file, used by all X sessions started by xinit (startx)
     
    # invoke global X session script
    #. /etc/X11/Xsession
    export DISPLAY=:0.0
    exec /home/alex/Desktop/player/pjsdl/SDLapp1 &
    export DISPLAY=:0.1; exec /home/alex/Desktop/player/pjsdl/SDLapp2
    Je n'ais pas trouver d'autrre moyen pour l'instant.
    Le dialogue entre les 2 application se fait par socket.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 17
    Dernier message: 17/10/2002, 20h06
  2. Réponses: 6
    Dernier message: 10/09/2002, 03h35
  3. plein écran
    Par patapetz dans le forum OpenGL
    Réponses: 9
    Dernier message: 21/08/2002, 14h15
  4. Creer un écran de veille
    Par Willand dans le forum C++Builder
    Réponses: 2
    Dernier message: 09/08/2002, 12h36
  5. recuperer la résolution de l'écran
    Par florent dans le forum C++Builder
    Réponses: 11
    Dernier message: 07/06/2002, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo