| 77 | } |
| 78 | |
| 79 | void run() |
| 80 | { |
| 81 | libfreenect2::FrameMap frames; |
| 82 | uint32_t seqNum = 0; |
| 83 | libfreenect2::Frame::Type seqType; |
| 84 | |
| 85 | struct streams { |
| 86 | const char* name; |
| 87 | libfreenect2::Frame::Type type; |
| 88 | } streams[] = { |
| 89 | { "Ir", libfreenect2::Frame::Ir }, |
| 90 | { "Depth", libfreenect2::Frame::Depth }, |
| 91 | { "Color", libfreenect2::Frame::Color } |
| 92 | }; |
| 93 | while(!device_stop) |
| 94 | { |
| 95 | listener.waitForNewFrame(frames); |
| 96 | |
| 97 | for (unsigned i = 0; i < sizeof(streams)/sizeof(*streams); i++) { |
| 98 | struct streams& s = streams[i]; |
| 99 | VideoStream* stream = getStream(s.type); |
| 100 | libfreenect2::Frame *frame = frames[s.type]; |
| 101 | if (stream) { |
| 102 | if (seqNum == 0) |
| 103 | seqType = s.type; |
| 104 | if (s.type == seqType) |
| 105 | seqNum++; |
| 106 | frame->timestamp = seqNum * 33369; |
| 107 | stream->buildFrame(frame); |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | listener.release(frames); |
| 112 | } |
| 113 | } |
| 114 | |
| 115 | OniStatus setStreamProperties(VideoStream* stream, std::string pfx) |
| 116 | { |
no test coverage detected