12using System.Threading;
13using System.Runtime.InteropServices;
29 long delta = stop - start;
31 Assert.Greater(delta, 200);
32 Assert.Less(delta, 1800);
37 IntPtr rebaser = IntPtr.Zero;
39 Assert.True(result ==
eLeapRS.eLeapRS_Success);
40 Assert.AreNotEqual(IntPtr.Zero, rebaser,
"Handle no longer zero");
42 Int64 sysNow = DateTime.Now.Millisecond;
45 Assert.True(result ==
eLeapRS.eLeapRS_Success);
49 Assert.True(result ==
eLeapRS.eLeapRS_Success);
51 Logger.Log(
"Rebased: " + rebasedTime);
61 config.
size = (uint)Marshal.SizeOf(config);
62 IntPtr connHandle = IntPtr.Zero;
64 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
65 Assert.False(connHandle == IntPtr.Zero,
"Configured connection failed.");
67 IntPtr defConn = IntPtr.Zero;
69 Assert.False(defConn == IntPtr.Zero,
"Default config connection failed.");
70 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
74 [Ignore(
"info.status is not returning true even though the result was returned "
75 +
"as successful. See the commented-out assert at the bottom of the test.")]
78 IntPtr connHandle = IntPtr.Zero;
80 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
83 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
88 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
95 IntPtr connHandle = IntPtr.Zero;
101 Assert.AreEqual(
eLeapRS.eLeapRS_InvalidArgument, result);
105 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
108 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
112 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
114 for (
int i = 1; i <= polls; i++) {
118 if (result ==
eLeapRS.eLeapRS_Success)
break;
122 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
130 IntPtr connHandle = IntPtr.Zero;
132 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Created connection");
135 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
136 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection");
139 for (
int i = 1; i <= polls; i++) {
143 Console.WriteLine(
"Poll #" + i +
" Msg type: " + msg.
type +
" result type: " + result);
145 Assert.True(result ==
eLeapRS.eLeapRS_Success || result ==
eLeapRS.eLeapRS_Timeout,
"Poll #" + i +
" of " + polls);
153 IntPtr connHandle = IntPtr.Zero;
155 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Created connection");
158 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
170 for (
int i = 1; i <= polls; i++) {
175 if (frameCount == selected - 1)
176 StructMarshal<LEAP_TRACKING_EVENT>.PtrToStruct(msg.
eventStructPtr, out firstBefore);
177 if (frameCount == selected)
178 StructMarshal<LEAP_TRACKING_EVENT>.PtrToStruct(msg.
eventStructPtr, out first);
179 if (frameCount == selected + 1)
180 StructMarshal<LEAP_TRACKING_EVENT>.PtrToStruct(msg.
eventStructPtr, out firstAfter);
181 if (frameCount == selected + 2)
182 StructMarshal<LEAP_TRACKING_EVENT>.PtrToStruct(msg.
eventStructPtr, out tenthBefore);
183 if (frameCount == selected + 3)
184 StructMarshal<LEAP_TRACKING_EVENT>.PtrToStruct(msg.
eventStructPtr, out tenth);
185 if (frameCount == selected + 4) {
186 StructMarshal<LEAP_TRACKING_EVENT>.PtrToStruct(msg.
eventStructPtr, out tenthAfter);
196 Logger.Log(
"Test : " + testTime);
200 Logger.Log(
"Size: " + size);
201 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Frame size call succeeded " + result.indexOf());
203 IntPtr trackingBuffer = Marshal.AllocHGlobal((Int32)size);
205 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Frame interpolation succeeded.");
208 StructMarshal<LEAP_TRACKING_EVENT>.PtrToStruct(trackingBuffer, out tracking_evt);
210 Marshal.FreeHGlobal(trackingBuffer);
216 IntPtr connHandle = IntPtr.Zero;
218 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
221 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
227 for (
int t = 0; t < tries; t++) {
234 UInt32 deviceCount = 0;
236 Logger.Log(
"DC: " + deviceCount);
238 Assert.Greater(deviceCount, 0, deviceCount +
" devices exist");
240 UInt32 validDeviceHandles = deviceCount;
243 Assert.AreEqual(deviceCount, validDeviceHandles, validDeviceHandles +
" existing devices are valid");
244 Logger.Log(
"VDHC: " + validDeviceHandles);
246 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Device list call successful");
251 IntPtr connHandle = IntPtr.Zero;
253 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Connection created");
257 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection.");
263 for (
int t = 0; t < tries; t++) {
270 UInt32 deviceCount = 0;
272 Assert.True(
eLeapRS.eLeapRS_Success == result ||
eLeapRS.eLeapRS_InsufficientBuffer == result,
"Device count call successful ");
273 Assert.Greater(deviceCount, 0,
"Devices exist");
275 UInt32 validDeviceHandles = deviceCount;
278 Assert.AreEqual(deviceCount, validDeviceHandles,
"Existing devices are valid");
282 Logger.LogStruct(deviceRef);
284 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Call successful");
285 Assert.AreNotEqual(IntPtr.Zero, device,
"Device handle not zero");
291 IntPtr connHandle = IntPtr.Zero;
293 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Connection created");
297 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection.");
303 for (
int t = 0; t < tries; t++) {
310 UInt32 deviceCount = 0;
312 Assert.True(
eLeapRS.eLeapRS_Success == result ||
eLeapRS.eLeapRS_InsufficientBuffer == result,
"Device count call successful ");
313 Assert.Greater(deviceCount, 0,
"Devices exist");
315 UInt32 validDeviceHandles = deviceCount;
318 Assert.AreEqual(deviceCount, validDeviceHandles,
"Existing devices are valid");
322 Logger.LogStruct(deviceRef);
324 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Call successful");
326 int defaultLength = 1;
327 deviceInfo.
serial = Marshal.AllocCoTaskMem(defaultLength);
328 deviceInfo.
size = (uint)Marshal.SizeOf(deviceInfo);
329 Logger.Log(
"DeviceInfo size: " + deviceInfo.
size);
331 Logger.LogStruct(deviceInfo,
"Before: ");
333 Assert.AreEqual(
eLeapRS.eLeapRS_InsufficientBuffer, result,
"not enough buffer");
336 deviceInfo.
size = (uint)Marshal.SizeOf(deviceInfo);
338 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"2nd Call successful");
340 Logger.LogStruct(deviceInfo,
"After: ");
341 string serialnumber = Marshal.PtrToStringAnsi(deviceInfo.
serial);
342 Logger.Log(serialnumber);
348 IntPtr connHandle = IntPtr.Zero;
350 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Connection created");
354 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection.");
360 for (
int t = 0; t < tries; t++) {
367 StructMarshal<LEAP_DEVICE_EVENT>.PtrToStruct(msg.
eventStructPtr, out device_evt);
370 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Call successful");
372 int defaultLength = 1;
373 deviceInfo.
serial = Marshal.AllocCoTaskMem(defaultLength);
374 deviceInfo.
size = (uint)Marshal.SizeOf(deviceInfo);
375 Logger.Log(
"DeviceInfo size: " + deviceInfo.
size);
377 Logger.LogStruct(deviceInfo,
"Before: ");
379 Assert.AreEqual(
eLeapRS.eLeapRS_InsufficientBuffer, result,
"not enough buffer");
381 Marshal.FreeCoTaskMem(deviceInfo.
serial);
383 deviceInfo.
size = (uint)Marshal.SizeOf(deviceInfo);
385 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"2nd Call successful");
387 Logger.LogStruct(deviceInfo,
"After: ");
388 string serialnumber = Marshal.PtrToStringAnsi(deviceInfo.
serial);
389 Marshal.FreeCoTaskMem(deviceInfo.
serial);
390 Logger.Log(serialnumber);
395 IntPtr connHandle = IntPtr.Zero;
397 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
400 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
406 for (
int t = 0; t < tries; t++) {
413 UInt64 clearFlags = 0;
416 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"SetDevicePolicyFlags Call");
423 IntPtr connHandle = IntPtr.Zero;
425 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Connection created");
429 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection.");
435 for (
int t = 0; t < tries; t++) {
442 UInt32 deviceCount = 0;
444 Assert.AreEqual(
eLeapRS.eLeapRS_InsufficientBuffer, result,
"GetDeviceCount Call ");
445 Assert.Greater(deviceCount, 0,
"Devices exist");
447 UInt32 validDeviceHandles = deviceCount;
450 Assert.AreEqual(deviceCount, validDeviceHandles,
"Existing devices are valid");
455 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"OpenDevice Call successful");
458 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"SetDeviceFlags Call successful");
465 IntPtr connHandle = IntPtr.Zero;
467 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Connection created");
471 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection.");
477 for (
int t = 0; t < tries; t++) {
484 UInt32 deviceCount = 0;
486 Assert.Greater(deviceCount, 0,
"Devices exist: " + deviceCount);
489 UInt32 validDeviceHandles = deviceCount;
492 Assert.AreEqual(deviceCount, validDeviceHandles,
"Existing devices are valid");
498 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"OpenDevice Call successful");
507 IntPtr connHandle = IntPtr.Zero;
509 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result);
510 Assert.False(connHandle == IntPtr.Zero,
"configured connection failed.");
516 IntPtr connHandle = IntPtr.Zero;
518 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Connection created");
522 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection.");
528 for (
int t = 0; t < tries; t++) {
534 UInt32 requestId = 1;
535 result =
LeapC.SaveConfigValue(connHandle,
"image_processing_auto_flip",
false, out requestId);
536 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config save requested");
541 for (
int t = 0; t < attempts; t++) {
548 StructMarshal<LEAP_CONFIG_CHANGE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out response);
549 UInt32 ReturnedRequestID = response.
requestId;
550 Assert.AreEqual(requestId, ReturnedRequestID,
"Request ID is the same");
552 Assert.True(response.
status ==
true,
"Save successful");
555 UInt32 requestID = 1;
557 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config value requested");
562 for (
int t = 0; t < attempts; t++) {
565 if (configMsg.type ==
eLeapEventType.eLeapEventType_ConfigResponse)
570 StructMarshal<LEAP_CONFIG_RESPONSE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out set_response);
571 Logger.LogStruct(configMsg);
572 Logger.LogStruct(set_response);
573 Logger.LogStruct(set_response.
value);
574 ReturnedRequestID = set_response.
requestId;
575 Assert.AreEqual(requestID, ReturnedRequestID,
"Request ID is the same");
577 Assert.False(set_response.
value.
boolValue == 0,
"Auto-flip is disabled");
580 result =
LeapC.SaveConfigValue(connHandle,
"image_processing_auto_flip", (set_response.
value.
boolValue == 0 ?
true :
false), out requestId);
585 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config value requested");
590 for (
int t = 0; t < attempts; t++) {
593 if (configMsg.type ==
eLeapEventType.eLeapEventType_ConfigResponse)
596 StructMarshal<LEAP_CONFIG_RESPONSE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out set_response);
597 Logger.LogStruct(configMsg);
598 Logger.LogStruct(set_response);
599 Logger.LogStruct(set_response.
value);
600 ReturnedRequestID = set_response.
requestId;
601 Assert.AreEqual(requestID, ReturnedRequestID,
"Request ID is the same");
603 Assert.True(set_response.
value.
boolValue == 1,
"Auto-flip is enabled again");
606 [Ignore(
"There are no public-facing float config settings. (The LeapC gestures API is "
610 IntPtr connHandle = IntPtr.Zero;
612 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Connection created");
616 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection.");
622 for (
int t = 0; t < tries; t++) {
627 UInt32 requestID = 1;
629 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config value requested");
634 for (
int t = 0; t < attempts; t++) {
636 Logger.Log(
"Msg type: " + configMsg.type);
637 if (configMsg.type ==
eLeapEventType.eLeapEventType_ConfigResponse)
641 StructMarshal<LEAP_CONFIG_RESPONSE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out response);
642 UInt32 ReturnedRequestID = response.
requestId;
643 Assert.AreEqual(requestID, ReturnedRequestID,
"Request ID is the same");
646 Assert.AreEqual(1000, response.
value.
floatValue,
"Swipe min velocity is 3mm, the default value");
649 [Ignore(
"LeapC does not document any float config settings to test this with.")]
652 IntPtr connHandle = IntPtr.Zero;
654 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Connection created");
658 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection.");
664 for (
int t = 0; t < tries; t++) {
671 UInt32 requestID = 5;
672 result =
LeapC.SaveConfigValue(connHandle,
"tool_radius_filtering", 3.0f, out requestID);
673 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config save requested");
678 for (
int t = 0; t < attempts; t++) {
685 StructMarshal<LEAP_CONFIG_CHANGE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out change);
686 Assert.AreEqual(requestID, change.
requestId,
"Request ID is the same");
687 Assert.True(change.
status ==
true,
"Save successful");
692 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config value requested");
697 for (
int t = 0; t < attempts; t++) {
699 Logger.Log(
"Msg type: " + configMsg.type);
700 if (configMsg.type ==
eLeapEventType.eLeapEventType_ConfigResponse)
704 StructMarshal<LEAP_CONFIG_RESPONSE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out response);
705 UInt32 ReturnedRequestID = response.
requestId;
706 Assert.AreEqual(requestID, ReturnedRequestID,
"Request ID is the same");
709 Assert.AreEqual(3, response.
value.
floatValue,
"Keytap min distance is 3mm, the default value");
713 result =
LeapC.SaveConfigValue(connHandle,
"tool_radius_filtering", 6.0f, out requestID);
714 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config save requested");
719 for (
int t = 0; t < attempts; t++) {
725 StructMarshal<LEAP_CONFIG_CHANGE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out change);
726 Assert.AreEqual(requestID, change.
requestId,
"Request ID is the same");
727 Assert.True(change.
status ==
true,
"Save successful");
732 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config value requested");
737 for (
int t = 0; t < attempts; t++) {
739 Logger.Log(
"Msg type: " + configMsg.type);
740 if (configMsg.type ==
eLeapEventType.eLeapEventType_ConfigResponse)
743 StructMarshal<LEAP_CONFIG_RESPONSE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out response);
745 Assert.AreEqual(requestID, ReturnedRequestID,
"Third Request ID is the same");
748 Assert.AreEqual(6.0f, response.
value.
floatValue,
"Keytap min distance is 6mm, the changed value");
752 [Ignore(
"LeapC appears to have a problem returning status: true for a successful "
753 +
"config change event for images_mode.")]
756 IntPtr connHandle = IntPtr.Zero;
758 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Connection created");
762 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection.");
768 for (
int t = 0; t < tries; t++) {
775 UInt32 requestID = 5;
776 result =
LeapC.SaveConfigValue(connHandle,
"images_mode", 1, out requestID);
777 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config save requested");
782 for (
int t = 0; t < attempts; t++) {
789 StructMarshal<LEAP_CONFIG_CHANGE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out change);
790 Assert.AreEqual(requestID, change.
requestId,
"Request ID is the same");
791 Assert.True(change.
status ==
true,
"Save successful");
796 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config value requested");
801 for (
int t = 0; t < attempts; t++) {
803 Logger.Log(
"Msg type: " + configMsg.type);
804 if (configMsg.type ==
eLeapEventType.eLeapEventType_ConfigResponse)
808 StructMarshal<LEAP_CONFIG_RESPONSE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out response);
809 UInt32 ReturnedRequestID = response.
requestId;
810 Assert.AreEqual(requestID, ReturnedRequestID,
"Request ID is the same");
812 Assert.AreEqual(1, response.
value.
intValue,
"images_mode should be 1");
816 result =
LeapC.SaveConfigValue(connHandle,
"images_mode", 2, out requestID);
817 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config save requested");
822 for (
int t = 0; t < attempts; t++) {
828 StructMarshal<LEAP_CONFIG_CHANGE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out change);
829 Assert.AreEqual(requestID, change.
requestId,
"Request ID is the same");
830 Assert.True(change.
status ==
true,
"Save successful");
835 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config value requested");
840 for (
int t = 0; t < attempts; t++) {
842 Logger.Log(
"Msg type: " + configMsg.type);
843 if (configMsg.type ==
eLeapEventType.eLeapEventType_ConfigResponse)
846 StructMarshal<LEAP_CONFIG_RESPONSE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out response);
848 Assert.AreEqual(requestID, ReturnedRequestID,
"Request ID is the same");
849 Assert.AreEqual(
eLeapValueType.eLeapValueType_Int32, response.
value.
type,
"Got a Int32 value the second time, too");
850 Assert.AreEqual(2, response.
value.
intValue,
"images_mode is 2, the changed value");
853 [Ignore(
"No known public settings return a string.")]
856 IntPtr connHandle = IntPtr.Zero;
858 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Connection created");
862 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection.");
868 for (
int t = 0; t < tries; t++) {
874 UInt32 requestID = 1;
876 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config value requested");
881 for (
int t = 0; t < attempts; t++) {
883 Logger.Log(
"Msg type: " + configMsg.type);
884 if (configMsg.type ==
eLeapEventType.eLeapEventType_ConfigResponse)
888 StructMarshal<LEAP_CONFIG_RESPONSE_EVENT_WITH_REF_TYPE>.PtrToStruct(configMsg.
eventStructPtr, out response);
889 UInt32 ReturnedRequestID = response.
requestId;
890 Assert.AreEqual(requestID, ReturnedRequestID,
"Request ID is the same");
896 [Ignore(
"No public config settings exist for strings.")]
899 IntPtr connHandle = IntPtr.Zero;
901 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Connection created");
905 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Opened connection.");
911 for (
int t = 0; t < tries; t++) {
916 Assert.AreNotEqual(tries, 100,
"PollConnection timed out trying to get "
917 +
"a ConfigChange event.");
920 UInt32 requestID = 5;
921 result =
LeapC.SaveConfigValue(connHandle,
"tilt_axis",
"y", out requestID);
922 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config save requested");
927 for (
int t = 0; t < attempts; t++) {
932 Assert.AreNotEqual(attempts, 1000,
"PollConnection timed out trying to get "
933 +
"a ConfigChange event.");
936 StructMarshal<LEAP_CONFIG_CHANGE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out change);
937 Assert.AreEqual(requestID, change.
requestId,
"Request ID is the same");
938 Assert.True(change.
status ==
true,
"Save successful");
943 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config value requested");
948 for (
int t = 0; t < attempts; t++) {
950 Logger.Log(
"Msg type: " + configMsg.type);
951 if (configMsg.type ==
eLeapEventType.eLeapEventType_ConfigResponse)
954 Assert.AreNotEqual(attempts, 100,
"PollConnection timed out trying to get "
955 +
"a ConfigResponse event.");
957 StructMarshal<LEAP_CONFIG_RESPONSE_EVENT_WITH_REF_TYPE>.PtrToStruct(configMsg.
eventStructPtr, out response);
958 UInt32 ReturnedRequestID = response.
requestId;
959 Assert.AreEqual(requestID, ReturnedRequestID,
"Request ID is the same");
965 result =
LeapC.SaveConfigValue(connHandle,
"tilt_axis",
"x", out requestID);
966 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config save requested");
971 for (
int t = 0; t < attempts; t++) {
976 Assert.AreNotEqual(attempts, 1000,
"PollConnection timed out trying to get "
977 +
"a ConfigChange event.");
979 StructMarshal<LEAP_CONFIG_CHANGE_EVENT>.PtrToStruct(configMsg.
eventStructPtr, out change);
980 Assert.AreEqual(requestID, change.
requestId,
"Request ID is the same");
981 Assert.True(change.
status ==
true,
"Save successful");
986 Assert.AreEqual(
eLeapRS.eLeapRS_Success, result,
"Config value requested");
991 for (
int t = 0; t < attempts; t++) {
993 Logger.Log(
"Msg type: " + configMsg.type);
994 if (configMsg.type ==
eLeapEventType.eLeapEventType_ConfigResponse)
997 Assert.AreNotEqual(attempts, 100,
"PollConnection timed out trying to get "
998 +
"a ConfigResponse event.");
999 StructMarshal<LEAP_CONFIG_RESPONSE_EVENT_WITH_REF_TYPE>.PtrToStruct(configMsg.
eventStructPtr, out response);
1001 Assert.AreEqual(requestID, ReturnedRequestID,
"Request ID is the same");
1002 Assert.AreEqual(
eLeapValueType.eLeapValueType_String, response.
value.
type,
"Got a String value the second time, too");
void TestSetPolicyFlags()
void TestRebaserLifeCycle()
void TestFloatConfigReadWrite()
void TestDestroyConnection()
void TestPollConnection()
void TestCreateConnection()
void TestGetStringConfigValue()
void TestSetDeviceFlags()
void TestInterpolateFrames()
void TestGetConnectionInfo()
void TestBoolConfigReadWrite()
void TestOpenConnection()
void TestInt32ConfigReadWrite()
void TestReadFloatConfig()
void TestStringConfigReadWrite()
void TestGetOneDeviceInfo()
static void CloseDevice(IntPtr pDevice)
static eLeapRS OpenConnection(IntPtr hConnection)
static eLeapRS UpdateRebase(IntPtr hClockRebaser, Int64 userClock, Int64 leapClock)
static eLeapRS CreateConnection(ref LEAP_CONNECTION_CONFIG pConfig, out IntPtr pConnection)
static eLeapRS GetDeviceInfo(IntPtr hDevice, ref LEAP_DEVICE_INFO info)
static eLeapRS InterpolateFrame(IntPtr hConnection, Int64 timestamp, IntPtr pEvent, UInt64 ncbEvent)
static eLeapRS PollConnection(IntPtr hConnection, UInt32 timeout, ref LEAP_CONNECTION_MESSAGE msg)
static eLeapRS RebaseClock(IntPtr hClockRebaser, Int64 userClock, out Int64 leapClock)
static eLeapRS GetDeviceList(IntPtr hConnection, [In, Out] LEAP_DEVICE_REF[] pArray, out UInt32 pnArray)
static eLeapRS DestroyClockRebaser(IntPtr hClockRebaser)
static eLeapRS RequestConfigValue(IntPtr hConnection, string name, out UInt32 request_id)
static void DestroyConnection(IntPtr connection)
static eLeapRS GetDeviceCount(IntPtr hConnection, out UInt32 deviceCount)
static eLeapRS GetConnectionInfo(IntPtr hConnection, ref LEAP_CONNECTION_INFO pInfo)
static eLeapRS OpenDevice(LEAP_DEVICE_REF rDevice, out IntPtr pDevice)
static eLeapRS SetPolicyFlags(IntPtr hConnection, UInt64 set, UInt64 clear)
static eLeapRS GetFrameSize(IntPtr hConnection, Int64 timestamp, out UInt64 pncbEvent)
static eLeapRS CreateClockRebaser(out IntPtr phClockRebaser)
LEAP_VARIANT_REF_TYPE value
LEAP_VARIANT_VALUE_TYPE value
eLeapConnectionStatus status