forked from usb4java/libusb4java
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathBosDescriptor.c
96 lines (87 loc) · 2.2 KB
/
BosDescriptor.c
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/*
* Copyright (C) 2013 Klaus Reimer ([email protected])
* See LICENSE.md file for copying conditions
*/
#include "BosDescriptor.h"
#include "BosDevCapabilityDescriptor.h"
void setBosDescriptor(JNIEnv* env,
const struct libusb_bos_descriptor* descriptor, jobject object)
{
SET_POINTER(env, descriptor, object, "bosDescriptorPointer");
}
struct libusb_bos_descriptor* unwrapBosDescriptor(JNIEnv* env,
jobject descriptor)
{
return (struct libusb_bos_descriptor*) unwrapPointer(env, descriptor,
"bosDescriptorPointer");
}
void resetBosDescriptor(JNIEnv* env, jobject obj)
{
RESET_POINTER(env, obj, "bosDescriptorPointer");
}
/**
* byte bLength()
*/
JNIEXPORT jbyte JNICALL METHOD_NAME(BosDescriptor, bLength)
(
JNIEnv *env, jobject this
)
{
struct libusb_bos_descriptor *descriptor =
unwrapBosDescriptor(env, this);
if (!descriptor) return 0;
return (jbyte) descriptor->bLength;
}
/**
* byte bDescriptorType()
*/
JNIEXPORT jbyte JNICALL METHOD_NAME(BosDescriptor, bDescriptorType)
(
JNIEnv *env, jobject this
)
{
struct libusb_bos_descriptor *descriptor =
unwrapBosDescriptor(env, this);
if (!descriptor) return 0;
return (jbyte) descriptor->bDescriptorType;
}
/**
* short wTotalLength()
*/
JNIEXPORT jshort JNICALL METHOD_NAME(BosDescriptor, wTotalLength)
(
JNIEnv *env, jobject this
)
{
struct libusb_bos_descriptor *descriptor =
unwrapBosDescriptor(env, this);
if (!descriptor) return 0;
return (jshort) descriptor->wTotalLength;
}
/**
* byte bNumDeviceCaps()
*/
JNIEXPORT jbyte JNICALL METHOD_NAME(BosDescriptor, bNumDeviceCaps)
(
JNIEnv *env, jobject this
)
{
struct libusb_bos_descriptor *descriptor =
unwrapBosDescriptor(env, this);
if (!descriptor) return 0;
return (jbyte) descriptor->bNumDeviceCaps;
}
/**
* BosDevCapabilityDescriptor[] devCapability()
*/
JNIEXPORT jobjectArray JNICALL METHOD_NAME(BosDescriptor, devCapability)
(
JNIEnv *env, jobject this
)
{
struct libusb_bos_descriptor *descriptor = unwrapBosDescriptor(
env, this);
if (!descriptor) return NULL;
return wrapBosDevCapabilityDescriptors(env, descriptor->bNumDeviceCaps,
descriptor->dev_capability);
}