Skip to content

Commit 2994c6d

Browse files
committed
Merge pull request #398 from nneonneo/java-changes
A few minor Java wrapper changes Reviewed-by: Benn Snyder <benn.snyder@gmail.com>
2 parents 4e489af + 0aba05e commit 2994c6d

File tree

4 files changed

+63
-3
lines changed

4 files changed

+63
-3
lines changed

fakenect/fakenect.c

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,11 @@ freenect_raw_tilt_state* freenect_get_tilt_state(freenect_device *dev)
219219
return &state;
220220
}
221221

222+
freenect_tilt_status_code freenect_get_tilt_status(freenect_raw_tilt_state *state)
223+
{
224+
return state->tilt_status;
225+
}
226+
222227
void freenect_get_mks_accel(freenect_raw_tilt_state *state, double* x, double* y, double* z)
223228
{
224229
//the documentation for the accelerometer (http://www.kionix.com/Product%20Sheets/KXSD9%20Product%20Brief.pdf)
@@ -261,6 +266,21 @@ freenect_frame_mode freenect_find_video_mode(freenect_resolution res, freenect_v
261266
return out;
262267
}
263268

269+
int freenect_get_video_mode_count()
270+
{
271+
return 1;
272+
}
273+
274+
freenect_frame_mode freenect_get_video_mode(int mode_num)
275+
{
276+
return freenect_find_video_mode(FREENECT_RESOLUTION_MEDIUM, FREENECT_VIDEO_RGB);
277+
}
278+
279+
freenect_frame_mode freenect_get_current_video_mode(freenect_device *dev)
280+
{
281+
return freenect_get_video_mode(0);
282+
}
283+
264284
freenect_frame_mode freenect_find_depth_mode(freenect_resolution res, freenect_depth_format fmt) {
265285
assert(FREENECT_RESOLUTION_MEDIUM == res);
266286
assert(FREENECT_DEPTH_11BIT == fmt);
@@ -270,6 +290,21 @@ freenect_frame_mode freenect_find_depth_mode(freenect_resolution res, freenect_d
270290
return out;
271291
}
272292

293+
int freenect_get_depth_mode_count()
294+
{
295+
return 1;
296+
}
297+
298+
freenect_frame_mode freenect_get_depth_mode(int mode_num)
299+
{
300+
return freenect_find_depth_mode(FREENECT_RESOLUTION_MEDIUM, FREENECT_DEPTH_11BIT);
301+
}
302+
303+
freenect_frame_mode freenect_get_current_depth_mode(freenect_device *dev)
304+
{
305+
return freenect_get_depth_mode(0);
306+
}
307+
273308
int freenect_num_devices(freenect_context *ctx)
274309
{
275310
// Always 1 device
@@ -283,12 +318,23 @@ int freenect_open_device(freenect_context *ctx, freenect_device **dev, int index
283318
return 0;
284319
}
285320

321+
int freenect_open_device_by_camera_serial(freenect_context *ctx, freenect_device **dev, const char* camera_serial)
322+
{
323+
*dev = fake_dev;
324+
return 0;
325+
}
326+
286327
int freenect_init(freenect_context **ctx, freenect_usb_context *usb_ctx)
287328
{
288329
*ctx = fake_ctx;
289330
return 0;
290331
}
291332

333+
int freenect_supported_subdevices(void)
334+
{
335+
return FREENECT_DEVICE_MOTOR | FREENECT_DEVICE_CAMERA;
336+
}
337+
292338
void freenect_select_subdevices(freenect_context *ctx, freenect_device_flags subdevs) {
293339
// Ideally, we'd actually check for MOTOR and CAMERA and AUDIO, but for now
294340
// we just ignore them and provide all captured data.

wrappers/java/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
all:
2+
mvn assembly:assembly -Dmaven.test.skip=true

wrappers/java/pom.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
12
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
23
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
34
<modelVersion>4.0.0</modelVersion>
45
<groupId>org.openkinect</groupId>
56
<artifactId>freenect</artifactId>
6-
<version>0.0.1-SNAPSHOT</version>
7+
<version>1.0</version>
78

89
<dependencies>
910
<dependency>
@@ -38,6 +39,14 @@
3839
<target>1.6</target>
3940
</configuration>
4041
</plugin>
42+
<plugin>
43+
<artifactId>maven-assembly-plugin</artifactId>
44+
<configuration>
45+
<descriptorRefs>
46+
<descriptorRef>jar-with-dependencies</descriptorRef>
47+
</descriptorRefs>
48+
</configuration>
49+
</plugin>
4150
</plugins>
4251
</build>
4352
</project>

wrappers/java/src/main/java/org/openkinect/freenect/Freenect.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.sun.jna.ptr.PointerByReference;
2929

3030
import java.io.IOException;
31+
import java.nio.ByteOrder;
3132
import java.nio.ByteBuffer;
3233
import java.nio.DoubleBuffer;
3334

@@ -173,8 +174,8 @@ protected NativeDevice (Pointer ptr, int index) {
173174
this.rawTiltState = freenect_get_tilt_state(this);
174175
this.accel = new double[3];
175176
refreshTiltState();
176-
setVideoFormat(VideoFormat.RGB);
177-
setDepthFormat(DepthFormat.D10BIT);
177+
//setVideoFormat(VideoFormat.RGB);
178+
//setDepthFormat(DepthFormat.D10BIT);
178179
}
179180

180181
protected void setDeviceIndex (int index) {
@@ -206,6 +207,7 @@ public void setDepthFormat (DepthFormat fmt, Resolution res) {
206207
if (mode.isValid()) {
207208
freenect_set_depth_mode(this, mode);
208209
depthBuffer = ByteBuffer.allocateDirect(mode.getFrameSize());
210+
depthBuffer.order(ByteOrder.nativeOrder());
209211
freenect_set_depth_buffer(this, depthBuffer);
210212
this.depthMode = mode;
211213
}
@@ -217,6 +219,7 @@ public void setVideoFormat (VideoFormat fmt, Resolution res) {
217219
if (mode.isValid()) {
218220
freenect_set_video_mode(this, mode);
219221
videoBuffer = ByteBuffer.allocateDirect(mode.getFrameSize());
222+
videoBuffer.order(ByteOrder.nativeOrder());
220223
freenect_set_video_buffer(this, videoBuffer);
221224
this.videoMode = mode;
222225
}

0 commit comments

Comments
 (0)