関数で次のリスナーにアクセスできるようにしたいと考えていgetFrames()
ます。これどうやってするの?プライベートフィールドにリスナーを追加してこれを試しましたが、まだ次のエラーが発生しますlistener(libfreenect2::Frame::Color | libfreenect2::Frame::Depth | libfreenect2::Frame::Ir);
:
'(libfreenect2::SyncMultiFrameListener) (int) の呼び出しに一致しません
サンプルアプリケーションコードを見てください
ソースファイル:
int KinectConnector::connect() {
//! [listeners]
listener(libfreenect2::Frame::Color | libfreenect2::Frame::Depth | libfreenect2::Frame::Ir);
dev->setColorFrameListener(&listener);
dev->setIrAndDepthFrameListener(&listener);
}
void KinectConnector::getFrames() {
while (!protonect_shutdown) {
listener.waitForNewFrame(frames);
}
}
ヘッダー ファイル:
class KinectConnector {
public:
KinectConnector();
virtual ~KinectConnector();
int connect();
void getFrames();
private:
libfreenect2::SyncMultiFrameListener listener
libfreenect2::FrameMap frames;
};
githubからのサンプル アプリケーション:
/// [listeners]
int types = 0;
if (enable_rgb)
types |= libfreenect2::Frame::Color;
if (enable_depth)
types |= libfreenect2::Frame::Ir | libfreenect2::Frame::Depth;
libfreenect2::SyncMultiFrameListener listener(types);
libfreenect2::FrameMap frames;
dev->setColorFrameListener(&listener);
dev->setIrAndDepthFrameListener(&listener);
/// [listeners]