質問

皆様にお伝えしたくて書き込みあSWIG/PythonバインディングもC++のコードです。これはいわゆる"Kinect偶発的なAPIを持っていモーターやledの機能 .のコールバックのリスナークラスを解析し、移植のRGBおよび深度バッファがいないようになると呼ばれるからSWIG.のデータ-キャプチャのスレッドが顕著に起動開始申し訳は、CPUがデバッグラインからのコールバックです。この方法の移植にデータのバッファーに簡単にアクセスから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++クラス?になっていたため、最小限のリスナーのC++、現在、残りの作業は、アクセスの配列を効率よくtypemaps.現在、私はこの素朴typemap

%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);
  }
}

より良いオプション?

役に立ちましたか?

解決

ディレクター機能を使用する方法があります。 Kinectlistenerプロキシ、1行のコードに有効にします。

%feature("director") KinectListener

次に、PythonコードでKinectlistenerクラスから継承し、機能を定義できます。

他のヒント

偶然、うみへのコールバックとSWIGのようです。

SWIG2.0文書というこ:

SWIGが全面的にバックアップのための関数ポインタのコールバック関数が定義されたCの外国語力を身につけていきます。...しかし、既存のCの機能をご利用いただくことができ、引数として提供しますインストールしていたとして定数.今後は、一定の指令しんでみてはいかがでしょうか。

私は企画書Cのコールバックは、さまざまな方法で記述は、JNI呼び込Java.ある場合を意味するものとして、私も大好きにも聴かせてあげたいです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top