public DeviceInfo GetDeviceFromFileMenu(string fileName) { ImplDesc desc = new ImplDesc() { group = ImplGroup.IMPL_GROUP_SENSOR, subgroup = ImplSubgroup.IMPL_SUBGROUP_VIDEO_CAPTURE }; ImplDesc desc1; DeviceInfo dinfo; SenseManager pp = SenseManager.CreateInstance(); if (pp == null) { return(null); } try { desc1 = session.QueryImpl(desc, 0); if (desc1 == null) { throw null; } if (pp.CaptureManager == null) { throw null; } if (pp.CaptureManager.SetFileName(fileName, false) < Status.STATUS_NO_ERROR) { throw null; } if (pp.CaptureManager.LocateStreams() < Status.STATUS_NO_ERROR) { throw null; } if (pp.CaptureManager.Device != null) { pp.CaptureManager.Device.QueryDeviceInfo(out dinfo); } else { throw null; } } catch { pp.Dispose(); return(null); } pp.Close(); pp.Dispose(); StatusLabel.Text = "Ok"; return(dinfo); }
// Load Capture from Group Sensor Info void LoadCapture() { ImplDesc desc = new ImplDesc() { group = ImplGroup.IMPL_GROUP_SENSOR, subgroup = ImplSubgroup.IMPL_SUBGROUP_VIDEO_CAPTURE }; Capture capture; if (senseManager.Session.CreateImpl <Capture>(senseManager.Session.QueryImpl(desc, 0), out capture) < Status.STATUS_NO_ERROR) { Debug.Log(TAG + "Initialize Capture Failure!"); } else { if (capture == null || capture.DeviceInfo == null) { Debug.Log(TAG + "No Capture Connected!"); } else if (capture.DeviceInfo.Length == 0) { Debug.Log(TAG + "No Camera Connected!"); } else { CaptureDevice(capture); } } }
/** * @brief Search a module implementation. * @param[in] templat The template for the module search. Zero field values match any. * @param[in] idx The zero-based index to retrieve multiple matches. * @param[out] desc The matched module descritpor, to be returned. * @return PXCM_STATUS_NO_ERROR Successful execution. * @return PXCM_STATUS_ITEM_UNAVAILABLE No matched module implementation. */ public pxcmStatus QueryImpl(ImplDesc templat, Int32 idx, out ImplDesc desc) { desc = new ImplDesc(); pxcmStatus sts = PXCMSession_QueryImpl(instance, templat, idx, desc); return(sts); }
// Load Capture from Group Sensor Info void LoadCapture() { ImplDesc desc = new ImplDesc() { group = ImplGroup.IMPL_GROUP_SENSOR, subgroup = ImplSubgroup.IMPL_SUBGROUP_VIDEO_CAPTURE }; Capture capture; if (senseManager.Session.CreateImpl <Capture>(senseManager.Session.QueryImpl(desc, 0), out capture) < Status.STATUS_NO_ERROR) { throw new System.Exception("Initialize Capture Failure!"); } else { if (capture == null || capture.DeviceInfo == null || capture.DeviceInfo.Length == 0) { throw new System.Exception("Capturing Failure"); } else { CaptureDevice(capture); } } }
/** * @brief Create an instance of the specified module. * @param[in] desc The module descriptor. * @param[out] tt The created instance, to be returned. * @return PXCM_STATUS_NO_ERROR Successful execution. * @return PXCM_STATUS_ITEM_UNAVAILABLE No matched module implementation. */ public pxcmStatus CreateImpl <TT>(ImplDesc desc, out TT tt) where TT : PXCMBase { PXCMBase tt2; #if !NETFX_CORE pxcmStatus sts = CreateImpl(desc, Type2CUID[typeof(TT)], out tt2); #else pxcmStatus sts = CreateImpl(desc, Type2CUID[typeof(TT).GetTypeInfo()], out tt2); #endif tt = (sts >= pxcmStatus.PXCM_STATUS_NO_ERROR) ? (TT)tt2 : null; return(sts); }
/** * @brief Create an instance of the specified module. * @param[in] desc The module descriptor. * @param[in] iuid Optional module implementation identifier. * @param[in] cuid Optional interface identifier. * @param[out] instance The created instance, to be returned. * @return PXCM_STATUS_NO_ERROR Successful execution. * @return PXCM_STATUS_ITEM_UNAVAILABLE No matched module implementation. */ public pxcmStatus CreateImpl(ImplDesc desc, Int32 iuid, Int32 cuid, out PXCMBase impl) { IntPtr impl2; pxcmStatus sts = PXCMSession_CreateImpl(instance, desc, iuid, cuid, out impl2); impl = null; if (sts >= pxcmStatus.PXCM_STATUS_NO_ERROR) { impl = new PXCMBase(impl2, false).QueryInstance(cuid); impl.AddRef(); } return(sts); }
private void PopulateDeviceMenu() { Devices = new Dictionary <string, DeviceInfo>(); ImplDesc desc = new ImplDesc() { group = ImplGroup.IMPL_GROUP_SENSOR, subgroup = ImplSubgroup.IMPL_SUBGROUP_VIDEO_CAPTURE }; ToolStripMenuItem sm = new ToolStripMenuItem("Device"); for (int i = 0; ; i++) { ImplDesc desc1 = session.QueryImpl(desc, i); if (desc1 == null) { break; } Capture capture = null; if (session.CreateImpl <Capture>(desc1, out capture) < Status.STATUS_NO_ERROR) { continue; } if (capture == null || capture.DeviceInfo == null) { continue; } if (!_isListChangeEventSet) { capture.DeviceListChanged += _capture_DeviceListChanged; _isListChangeEventSet = true; } for (int j = 0; j < capture.DeviceInfo.Length; j++) { DeviceInfo dinfo = capture.DeviceInfo[j]; if (dinfo == null) { break; } if (Devices.ContainsKey(dinfo.name)) { dinfo.name += j; } Devices.Add(dinfo.name, dinfo); ToolStripMenuItem sm1 = new ToolStripMenuItem(dinfo.name, null, new EventHandler(Device_Item_Click)); sm.DropDownItems.Add(sm1); } } if (sm.DropDownItems.Count > 0) { var toolStripMenuItem = sm.DropDownItems[0] as ToolStripMenuItem; if (toolStripMenuItem != null) { toolStripMenuItem.Checked = true; } } MainMenu.Items.RemoveAt(0); MainMenu.Items.Insert(0, sm); }
internal static extern pxcmStatus PXCMSession_CreateImpl(IntPtr session, ImplDesc desc, Int32 iuid, Int32 cuid, out IntPtr instance);
/** @brief Search a module implementation. @param[in] templat The template for the module search. Zero field values match any. @param[in] idx The zero-based index to retrieve multiple matches. @param[out] desc The matched module descritpor, to be returned. @return PXCM_STATUS_NO_ERROR Successful execution. @return PXCM_STATUS_ITEM_UNAVAILABLE No matched module implementation. */ public pxcmStatus QueryImpl(ImplDesc templat, Int32 idx, out ImplDesc desc) { desc = new ImplDesc(); pxcmStatus sts = PXCMSession_QueryImpl(instance, templat, idx, desc); return sts; }
internal static extern pxcmStatus PXCMSession_QueryImpl(IntPtr session, ImplDesc templat, Int32 idx, [Out] ImplDesc desc);
/** * @brief Create an instance of the specified module. * @param[in] desc The module descriptor. * @param[in] cuid Optional interface identifier. * @param[out] instance The created instance, to be returned. * @return PXCM_STATUS_NO_ERROR Successful execution. * @return PXCM_STATUS_ITEM_UNAVAILABLE No matched module implementation. */ public pxcmStatus CreateImpl(ImplDesc desc, Int32 cuid, out PXCMBase instance) { return(CreateImpl(desc, 0, cuid, out instance)); }