Ceci est lié à my other question, mais je me sentais comme si je devrais le poser dans une nouvelle question. Fondamentalement FLAC utilise des pointeurs de fonction pour les rappels, et pour implémenter des rappels avec ctypes, vous utilisez CFUNCTYPE
pour les prototyper, puis vous utilisez la fonction prototype()
pour les créer.Ctypes Python et pointeurs de fonction
Le problème que j'ai avec ce que je me suis dit que je créerais ma fonction de rappel en tant que telle (je ne montre pas les structures que j'ai recréées, FLAC__Frame est une structure):
write_callback_prototype = CFUNCTYPE(c_int, c_void_p,
POINTER(FLAC__Frame),
POINTER(c_int32), v_void_p)
Le problème que j'ai est la mise en œuvre. FLAC__Frame n'est jamais instancié par le programmeur, il est uniquement appelé depuis la fonction d'initialisation, et les fonctions de traitement. Je dois écrire la fonction callback moi-même, mais le problème est que je ne sais pas comment je ferais ça. sait comment je devrais faire cela, alors une aide serait grandement appréciée.
Merci beaucoup, votre code m'a fait réaliser comment je devais le créer! – Bocom