Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008
-
3 janv. 2008 à 16:09
rachmasse
Messages postés14Date d'inscriptiondimanche 3 décembre 2000StatutMembreDernière intervention10 juillet 2008
-
2 mars 2008 à 12:41
Bonjour je cherche à lister les infos des périphériques audio connectés à un PC, j'en suis à l'étape de test pour connaitre le nombre de sorties et d'entrées disponibles pour un périphérique.
J'ai donc fait une petite fonction :
int AudioDrivers::TestAudioDriver(LPAUDIODRIVERSLIST audiodrv,unsigned int channels,double SampleRate,int Resolution){
if(audiodrv)
if(audiodrv->type==AUDIO_TYPE_WDM){
else if(open==MMSYSERR_ALLOCATED)strcpy(audiodrv->errorMessage, "Specified resource is already allocated.");
else if(open==MMSYSERR_BADDEVICEID)strcpy(audiodrv->errorMessage, "Specified device identifier is out of range.");
else if(open==MMSYSERR_NODRIVER)strcpy(audiodrv->errorMessage, "No device driver is present.");
else if(open==MMSYSERR_NOMEM)strcpy(audiodrv->errorMessage, "Unable to allocate or lock memory.");
else if(open==WAVERR_BADFORMAT)strcpy(audiodrv->errorMessage, "Attempted to open with an unsupported waveform-audio format.");
else if(open==WAVERR_SYNC)strcpy(audiodrv->errorMessage, "The device is synchronous but waveOutOpen was called without using the WAVE_ALLOWSYNC flag.");
}
}
return 0;
}
que j'appelle de la façon suivante (ici test pour du 7.1 par exemple):
Le soucis est que sur une carte audio qui dispose de 2 sorties, cet exemple donne quand même un résultat positif. Je voudrais savoir comment obtenir plus concrètement les infos d'une carte son, puis l'utiliser en se servant le moins possibles des fioritures de windows.
Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008 3 janv. 2008 à 21:13
Bonjour Arnotic,
J'utilise déjà au préalable waveOutGetDevCaps pour récuperer les noms, mais je n'étais pas satisfait du : waveOutGetDevCaps.wChannels 65535 qui n'a à mes yeux pas d'utilité car aucune carte son n'a 65535 sorties réelles or les 3 cartes son connectées à mon PC donnent ce même nombre (deux d'entres elles sont des 7.1, la troisième une stéréo).
J'ai l'impression que waveoutgetdevcaps donne plutot les capacités du bus audio associé à la carte et non pas les capacités physiques de la carte. De plus wChannels est cencé prendre les valeurs 1 pour mono ou 2 pour stéréo selon la msdn, et malheureusement on ne parle pas de ce qui ce passe pour des cartes son plus récentes 5.1 et 7.1 par exemple.
Moi je cherche à récuperer les infos précises : nombre de canaux, samplerates acceptés en entrée et en sortie ...
Mais pour l'instant je suis un peu perdu dans les infos complexes de la msdn.
Si tu as une piste pour aller un peu plus loin je suis preneur.
rachmasse
Messages postés14Date d'inscriptiondimanche 3 décembre 2000StatutMembreDernière intervention10 juillet 2008 27 févr. 2008 à 16:41
Salut,
j'ai une question pour toi Arnotic, j'ai recuperé ton code et j'essaye de la faire marcher en C.
Hors j'ai une erreur que je ne comprends pas si tu pouvais m'eclairer ca serait sympa.
Autre question est ce qu'il est possible de faire la meme chose avec les peripheriques video, je pense à la webcam par exemple ????
erreur : [Linker error] undefined reference to `waveInGetNumDevs@0'
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?