Recheche api pour connaitre la presence d'un cd dans le lecteur

Recheche api pour connaitre la presence d'un cd dans le lecteur - C++ - Programmation

Marsh Posté le 19-03-2004 à 13:37:40    

Bonjour,  
 
je réalise un lecteur cd sous mandrake 9.2 avec la bibliotheque QT. J'aimerais savoir si c'est possible que le systeme (kde) puisse indiquer a mon application quand l'utilisateur insere ou ejecte un cd.
 
J'avais réalisé une application sous windows (mfc), et windows envoie un message du type WM-DEVICE (si mes souvenirs sont bon), lorsque un cd est inseré ou ejecté.
 
Merci de vos réponses.

Reply

Marsh Posté le 19-03-2004 à 13:37:40   

Reply

Marsh Posté le 19-03-2004 à 13:39:53    

Sous linux je dirais plutôt qu'il faut regarder quand ton cd est monté/démonté. Tu as ça dans /etc/mtab

Reply

Marsh Posté le 19-03-2004 à 16:35:44    

C une idée effectivement, mais le probleme c que pour faire ça il faudrait que je crée un thread qui veridié chaque seconde par exemple si le cd est monte ou non. Moi j'aimerais plutot que l'application lance l'application quand elle reçoit un message.

Reply

Marsh Posté le 19-03-2004 à 16:53:16    

je pense que ça doit pouvoir se faire avec ioctl

Reply

Marsh Posté le 19-03-2004 à 16:54:04    

les CD audio ne peuvent pas "monté", donc ...
 
Une solution/piste est de regarder comment est fait la détection de CD dans cdrtools/cdrecord avec un device ATAPI (sans emulation SCSI car dans ce cas, cdrecord passe par la librairie/driver sg, et c'est pas bien, dans le noyau de serie 2.6)

Reply

Marsh Posté le 19-03-2004 à 17:00:13    

et puis si c'est un cd de musique, l'utilisateur ne doit pas monter le decteur de CD.
Dans le linux mag de ce mois-ci il y un article sympa sur freedb, avec un pg qui va lire l'identifiant du cd. ça pourrait sans doute t'aider.
sinon, ioctl et include/linux/cdrom.h
 

Reply

Marsh Posté le 19-03-2004 à 17:11:07    

ça doit etre assez rigolo d'attaquer le lecteur CD (plus precisement, le device correspond au lecteur de CD) avec ioctl. La plate-forme est-elle x86 ou plus exotique?

Reply

Marsh Posté le 19-03-2004 à 17:11:13    

Code :
  1. static int detect(const char *device)
  2. {
  3.   int fd = open(device, O_RDONLY);
  4.  
  5.   if (fd != -1)
  6.     {
  7.       close(fd);
  8.       return 1;
  9.     }
  10.   return 0;
  11. }

ça fonctionne ça :D

Reply

Marsh Posté le 19-03-2004 à 17:11:44    

western a écrit :

ça doit etre assez rigolo d'attaquer le lecteur CD (plus precisement, le device correspond au lecteur de CD) avec ioctl. La plate-forme est-elle x86 ou plus exotique?

je vois pas le problème ni le rapport ?

Reply

Marsh Posté le 19-03-2004 à 17:12:22    

Taz a écrit :

Code :
  1. static int detect(const char *device)
  2. {
  3.   int fd = open(device, O_RDONLY);
  4.  
  5.   if (fd != -1)
  6.     {
  7.       close(fd);
  8.       return 1;
  9.     }
  10.   return 0;
  11. }

ça fonctionne ça :D


sur un CD audio? dommange, j'en pas sous la main...

Reply

Marsh Posté le 19-03-2004 à 17:12:22   

Reply

Marsh Posté le 19-03-2004 à 17:13:38    

Taz a écrit :

je vois pas le problème ni le rapport ?


après reflexion, il n'y a ni problème, ni rapport

Reply

Marsh Posté le 19-03-2004 à 17:14:28    

western a écrit :


sur un CD audio? dommange, j'en pas sous la main...

moi non plus mais pourquoi pas ... un cd audio est lisible, meme s'il n'a pas de fs

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed