-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathworker.cpp
More file actions
60 lines (42 loc) · 1.16 KB
/
worker.cpp
File metadata and controls
60 lines (42 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "worker.h"
#include <zmq.h>
#include "kinectcapture.h"
#include <QDebug>
Worker::~Worker()
{
}
void Worker::run()
{
void* rcv = zmq_socket(_ctx,ZMQ_SUB);
zmq_setsockopt(rcv,ZMQ_SUBSCRIBE,0,0);
zmq_connect(rcv,"inproc://stopper");
void* pusher = zmq_socket(_ctx,ZMQ_PUSH);
zmq_bind(pusher,"inproc://writer");
char buf[8];
while(true)
{
if(zmq_recv(rcv,buf,7,ZMQ_DONTWAIT)>0)
{
break;
}
if(WaitForSingleObject(reinterpret_cast<HANDLE>(_kc->_evt_frame_ready), INFINITE)==WAIT_OBJECT_0)
{
if(_kc->Reader())
{
IMultiSourceFrameArrivedEventArgs *args = nullptr;
if(SUCCEEDED(_kc->Reader()->GetMultiSourceFrameArrivedEventData(_kc->_evt_frame_ready,&args)))
{
//qDebug()<<"Frame Arrived";
if(_kc->ProcessArrivedFrame(args))
{
//zmq_send(pusher,"OK",2,0);
}
}
args->Release();
}
}
}
qDebug()<<"End Thread";
zmq_close(rcv);
zmq_close(pusher);
}