Skip to content

Commit 1879a00

Browse files
wait for threadsafe function to finish - fixes #59
1 parent 8b026b3 commit 1879a00

17 files changed

Lines changed: 425 additions & 39 deletions

examples/electron/renderer/demo-preload.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ const { ipcRenderer } = require('electron');
22
ipcRenderer.on('close-kinect', (event, message) => {
33
if (window.kinect) {
44
// properly close the kinect and send a message back to the renderer
5-
window.kinect.close();
6-
event.sender.send('kinect closed');
5+
window.kinect.close().then(() => {
6+
event.sender.send('kinect closed');
7+
});
78
} else {
89
event.sender.send('kinect closed');
910
}

examples/electron/renderer/demos/color-reader.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ <h1 class="bd-title">Color Stream</h1>
3737
startKinect();
3838
};
3939

40-
const setFeedOpen = (value) => {
40+
const setFeedOpen = async (value) => {
4141
if(value !== feedOpen) {
4242
feedOpen = value;
4343
if(feedOpen) {
44-
$toggleFeedButton.textContent = 'Stop Video';
4544
kinect.openColorReader();
45+
$toggleFeedButton.textContent = 'Stop Video';
4646
} else {
47+
await kinect.closeColorReader();
4748
$toggleFeedButton.textContent = 'Start Video';
48-
kinect.closeColorReader();
4949
}
5050
}
5151
}

examples/electron/renderer/demos/depth-reader.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ <h1 class="bd-title">Depth Stream</h1>
3737
startKinect();
3838
};
3939

40-
const setFeedOpen = (value) => {
40+
const setFeedOpen = async (value) => {
4141
if(value !== feedOpen) {
4242
feedOpen = value;
4343
if(feedOpen) {
44-
$toggleFeedButton.textContent = 'Stop Video';
4544
kinect.openDepthReader();
45+
$toggleFeedButton.textContent = 'Stop Video';
4646
} else {
47+
await kinect.closeDepthReader();
4748
$toggleFeedButton.textContent = 'Start Video';
48-
kinect.closeDepthReader();
4949
}
5050
}
5151
}

examples/electron/renderer/demos/infrared-reader.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ <h1 class="bd-title">Infrared Stream</h1>
3737
startKinect();
3838
};
3939

40-
const setFeedOpen = (value) => {
40+
const setFeedOpen = async (value) => {
4141
if(value !== feedOpen) {
4242
feedOpen = value;
4343
if(feedOpen) {
44-
$toggleFeedButton.textContent = 'Stop Video';
4544
kinect.openInfraredReader();
45+
$toggleFeedButton.textContent = 'Stop Video';
4646
} else {
47+
await kinect.closeInfraredReader();
4748
$toggleFeedButton.textContent = 'Start Video';
48-
kinect.closeInfraredReader();
4949
}
5050
}
5151
}

examples/electron/renderer/demos/long-exposure-infrared-reader.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ <h1 class="bd-title">Long Exposure Infrared Stream</h1>
3737
startKinect();
3838
};
3939

40-
const setFeedOpen = (value) => {
40+
const setFeedOpen = async (value) => {
4141
if(value !== feedOpen) {
4242
feedOpen = value;
4343
if(feedOpen) {
44-
$toggleFeedButton.textContent = 'Stop Video';
4544
kinect.openLongExposureInfraredReader();
45+
$toggleFeedButton.textContent = 'Stop Video';
4646
} else {
47+
await kinect.closeLongExposureInfraredReader();
4748
$toggleFeedButton.textContent = 'Start Video';
48-
kinect.closeLongExposureInfraredReader();
4949
}
5050
}
5151
}

examples/electron/renderer/demos/multi-source-reader.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,17 @@ <h1 class="bd-title">Multi Source Stream</h1>
5050
startKinect();
5151
};
5252

53-
const setFeedOpen = (value) => {
53+
const setFeedOpen = async (value) => {
5454
if(value !== feedOpen) {
5555
feedOpen = value;
5656
if(feedOpen) {
57-
$toggleFeedButton.textContent = 'Stop Video';
5857
kinect.openMultiSourceReader({
5958
frameTypes: Kinect2.FrameType.color | Kinect2.FrameType.depth | Kinect2.FrameType.body
6059
});
60+
$toggleFeedButton.textContent = 'Stop Video';
6161
} else {
62+
await kinect.closeMultiSourceReader();
6263
$toggleFeedButton.textContent = 'Start Video';
63-
kinect.closeMultiSourceReader();
6464
}
6565
}
6666
}

examples/electron/renderer/demos/skeletons.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ <h1 class="bd-title">Skeletons</h1>
5050
startKinect();
5151
};
5252

53-
const setFeedOpen = (value) => {
53+
const setFeedOpen = async (value) => {
5454
if(value !== feedOpen) {
5555
feedOpen = value;
5656
if(feedOpen) {
57-
$toggleFeedButton.textContent = 'Stop Video';
5857
kinect.openBodyReader();
58+
$toggleFeedButton.textContent = 'Stop Video';
5959
} else {
60+
await kinect.closeBodyReader();
6061
$toggleFeedButton.textContent = 'Start Video';
61-
kinect.closeBodyReader();
6262
}
6363
}
6464
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
const Kinect2 = require('kinect2');
2+
const kinect = new Kinect2();
3+
4+
// execute as an async function, so we can use the await keyword
5+
const main = async () => {
6+
if(kinect.open()) {
7+
console.log("Kinect Opened");
8+
kinect.openBodyReader();
9+
console.log("started body reader");
10+
await kinect.closeBodyReader();
11+
console.log("stopped body reader");
12+
13+
kinect.openBodyReader();
14+
console.log("started body reader");
15+
await kinect.closeBodyReader();
16+
console.log("stopped body reader");
17+
18+
// you can also us the then() keyword
19+
kinect.openBodyReader();
20+
console.log("started body reader");
21+
kinect.closeBodyReader().then(() => {
22+
console.log("stopped body reader");
23+
24+
// or use an old-school callback to wait for the kinect to finish cleaning up
25+
kinect.closeBodyReader((err, result) => {
26+
console.log("stopped body reader");
27+
kinect.close();
28+
});
29+
});
30+
}
31+
};
32+
33+
main();
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
const Kinect2 = require('kinect2');
2+
const kinect = new Kinect2();
3+
4+
// execute as an async function, so we can use the await keyword
5+
const main = async () => {
6+
if(kinect.open()) {
7+
console.log("Kinect Opened");
8+
kinect.openColorReader();
9+
console.log("started color reader");
10+
await kinect.closeColorReader();
11+
console.log("stopped color reader");
12+
13+
kinect.openColorReader();
14+
console.log("started color reader");
15+
await kinect.closeColorReader();
16+
console.log("stopped color reader");
17+
18+
// you can also us the then() keyword
19+
kinect.openColorReader();
20+
console.log("started color reader");
21+
kinect.closeColorReader().then(() => {
22+
console.log("stopped color reader");
23+
24+
// or use an old-school callback to wait for the kinect to finish cleaning up
25+
kinect.closeColorReader((err, result) => {
26+
console.log("stopped color reader");
27+
kinect.close();
28+
});
29+
});
30+
}
31+
};
32+
33+
main();
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
const Kinect2 = require('kinect2');
2+
const kinect = new Kinect2();
3+
4+
// execute as an async function, so we can use the await keyword
5+
const main = async () => {
6+
if(kinect.open()) {
7+
console.log("Kinect Opened");
8+
kinect.openDepthReader();
9+
console.log("started depth reader");
10+
await kinect.closeDepthReader();
11+
console.log("stopped depth reader");
12+
13+
kinect.openDepthReader();
14+
console.log("started depth reader");
15+
await kinect.closeDepthReader();
16+
console.log("stopped depth reader");
17+
18+
// you can also us the then() keyword
19+
kinect.openDepthReader();
20+
console.log("started depth reader");
21+
kinect.closeDepthReader().then(() => {
22+
console.log("stopped depth reader");
23+
24+
// or use an old-school callback to wait for the kinect to finish cleaning up
25+
kinect.closeDepthReader((err, result) => {
26+
console.log("stopped depth reader");
27+
kinect.close();
28+
});
29+
});
30+
}
31+
};
32+
33+
main();

0 commit comments

Comments
 (0)