Modèle d’appareil
Les caméscopes IEEE 1394 et USB peuvent basculer entre le mode caméra et le mode magnétoscope (magnétoscope). Quand un caméscope IEEE 1394 change de mode, le périphérique est redéfini et l’application doit l’énumérer à nouveau. Il n’existe aucun moyen pour une application de basculer le mode par programme. Les caméscopes USB, quant à eux, peuvent basculer entre les modes caméra et magnétoscope sans réinitialiser, et l’application peut modifier le mode.
Pilote MSDV
Pour récupérer le mode actuel sur un appareil IEEE 1394, appelez la méthode IAMExtDevice :: GetCapability avec la valeur Ed _ DEVCAP _ Device _ type. Si la méthode retourne le _ magnétoscope devtype de valeur Ed _ , l’appareil est en mode VTR et possède des fonctions telles que pause, arrêt, avance rapide et rembobiner. Sinon, si la méthode retourne ED _ devtype _ Camera, l’appareil est en mode caméra. L’exemple de code suivant montre comment interroger le type d’appareil :
if (MyDevCap.bHasDevice)
{
LONG lDeviceType = 0;
MyDevCap.pDevice->GetCapability(ED_DEVCAP_DEVICE_TYPE, &lDeviceType, 0);
if (lDeviceType == ED_DEVTYPE_VCR)
{
// Device is a VTR. Enable all VTR functions.
}
else
{
// Device is a camera.
// Enable record and record-pause; disable other functions.
}
}
Si le caméscope passe en mode hors connexion, vous devez le demander une nouvelle fois dès qu’il sera disponible. Le gestionnaire de graphique de filtre publie un événement de _ _ perte d’appareil ce lorsque l’appareil est supprimé.
Pilote UVC
Étant donné que les périphériques vidéo USB peuvent changer de mode sans réinitialiser, le code présenté dans les exemples précédents n’est pas fiable pour les périphériques USB. Utilisez plutôt l’interface ISelector pour accéder au mode actuel. Vous pouvez également utiliser cette interface pour changer de mode par programme si l’appareil la prend en charge.