Я пишу некоторые привязки SWIG / Python для некоторого кода C ++.Это то, что называется Kinect Accidental API, у меня есть функции двигателя и светодиода , работающие .Обратные вызовы класса Listener, которые анализируют и заполняют буферы RGB и Depth, похоже, не вызываются из SWIG.Потоки захвата данных, очевидно, запускаются и начинают загружать процессор, но никакие строки отладки обратного вызова не проходят.Что может быть лучше для заполнения буферов данных и легкого доступа к ним из python?
class KinectListener
{
public:
virtual ~KinectListener(){};
virtual void KinectDisconnected(Kinect *K) {};
virtual void DepthReceived(Kinect *K) {};
virtual void ColorReceived(Kinect *K) {};
virtual void AudioReceived(Kinect *K) {};
};
Вот класс слушателя с виртуальными методами, можно ли использовать версию этого класса в оболочке Python для наследования слушателей длякласс с ++?Я добавил минимальный слушатель в C ++, и теперь остальной работой является эффективный доступ к массивам с помощью карт типов.В настоящее время я использую эту наивную карту типов
%typemap(out) unsigned short [ANY] {
int i;
$result = PyList_New($1_dim0);
for (i = 0; i < $1_dim0; i++) {
PyObject *o = PyInt_FromLong((long)$1[i]);
PyList_SetItem($result,i,o);
}
}
Лучшие варианты?