bool TangoData::ConnectCallbacks() { // Attach the onXYZijAvailable callback. if (TangoService_connectOnXYZijAvailable(onXYZijAvailable) != TANGO_SUCCESS) { LOGI("TangoService_connectOnXYZijAvailable(): Failed"); return false; } // Set the reference frame pair after connect to service. // Currently the API will set this set below as default. TangoCoordinateFramePair pairs; pairs.base = TANGO_COORDINATE_FRAME_START_OF_SERVICE; pairs.target = TANGO_COORDINATE_FRAME_DEVICE; // Attach onPoseAvailable callback. if (TangoService_connectOnPoseAvailable(1, &pairs, onPoseAvailable) != TANGO_SUCCESS) { LOGI("TangoService_connectOnPoseAvailable(): Failed"); return false; } // Attach onFrameAvailable callback. if (TangoService_connectOnFrameAvailable(TANGO_CAMERA_COLOR, NULL, onFrameAvailable) != TANGO_SUCCESS) { LOGI("TangoService_connectOnFrameAvailable(): Failed"); return false; } // Set the event callback listener. if (TangoService_connectOnTangoEvent(onTangoEvent) != TANGO_SUCCESS) { LOGI("TangoService_connectOnTangoEvent(): Failed"); return false; } return true; }
void FrameBuffer::setup() { int ret = TangoService_connectOnFrameAvailable(TANGO_CAMERA_COLOR, NULL, onFrameAvailable); if (ret == TANGO_SUCCESS) { LOGD("onFrameAvailable connected"); if (FrameBuffer::latestBuffer == NULL) { FrameBuffer::latestBuffer = new uint8_t[BUFFER_SIZE]; } else { LOGE("frameBuffer is already initialized"); } } else { LOGE("Error connecting color frame %d", ret); } }