Bonjour,
Je dois réaliser un projet utilisant le SDK de Canon pour piloter un appareil photo à partir d'un programme.
Depuis quelques temps je suis bloqué sur l'utilisation d'un Callback propre au SDK.
J'explique mon problème : Je voudrais pouvoir prendre plusieurs photos à la suite correctement, c'est a dire que pour pouvoir continuer la prise de photos, le programme doit attendre que la photo ai bien été récupéré et enregistré sur la carte.
Pour cela j'utilise une fonction qui permet de lancer une commande à l'appareil
et j'ai définit un callback permettant de savoir si un objet a bien été crée.
Seulement les parametres du callback sont fixes et je ne peut pas modifié ou retourner une valeur permmetant de savoir si l'objet a bien été crée.
Apparement je pourrait utiliser le parametre 3 prenant un (void*) mais je ne sait pas comment bien le caster comme il faut.
Callback :
Code C/C++ :
EdsError EDSCALLBACK handleObjectEvent( EdsObjectEvent event,EdsBaseRef object,EdsVoid * context)
{
switch(event)
{
case kEdsObjectEvent_DirItemCreated:
//action a effectuer
break;
default:
break;
}
// Object must be released
if(object)
{
EdsRelease(object);
}
return 0;
}
initialisation du callback
Code C/C++ :
if(err == EDS_ERR_OK)
{
err = EdsSetObjectEventHandler(this->cam, kEdsObjectEvent_All,handleObjectEvent,NULL);
}
J'ai essayé avec une variable statique mais ca ne marche pas merci.