////////////////////////////////////////////////// #region Static Methods /// <summary> /// Get device names. /// Devices' group is restricted to sensor type. /// Devices' subgroup is restricted to video capture type. /// </summary> /// <returns>Device names</returns> public static string[] GetDeviceNames() { var session = GestureCameraUtil.GetSession(); var descOriginal = new PXCMSession.ImplDesc(); descOriginal.group = PXCMSession.ImplGroup.IMPL_GROUP_SENSOR; descOriginal.subgroup = PXCMSession.ImplSubgroup.IMPL_SUBGROUP_VIDEO_CAPTURE; var list = new List <string>(); for (uint i = 0; ; i++) { PXCMSession.ImplDesc desc; if (GestureCameraUtil.HasError(session.QueryImpl(ref descOriginal, i, out desc))) { break; } PXCMCapture capture; if (GestureCameraUtil.HasError(session.CreateImpl <PXCMCapture>(ref desc, PXCMCapture.CUID, out capture))) { continue; } for (uint j = 0; ; j++) { PXCMCapture.DeviceInfo info; if (GestureCameraUtil.HasError(capture.QueryDevice(j, out info))) { break; } list.Add(info.name.get()); } capture.Dispose(); } return(list.ToArray()); }