Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
    // 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);
            }
        }
    }
Ejemplo n.º 3
0
    /**
     *  @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);
    }
Ejemplo n.º 4
0
    // 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);
            }
        }
    }
Ejemplo n.º 5
0
    /**
     *  @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);
    }
Ejemplo n.º 6
0
    /**
     *  @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);
    }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 internal static extern pxcmStatus PXCMSession_CreateImpl(IntPtr session, ImplDesc desc, Int32 iuid, Int32 cuid, out IntPtr instance);
Ejemplo n.º 9
0
 /** 
     @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;
 }
Ejemplo n.º 10
0
 internal static extern pxcmStatus PXCMSession_QueryImpl(IntPtr session, ImplDesc templat, Int32 idx, [Out] ImplDesc desc);
Ejemplo n.º 11
0
 /**
  *  @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));
 }
Ejemplo n.º 12
0
 internal static extern pxcmStatus PXCMSession_CreateImpl(IntPtr session, ImplDesc desc, Int32 iuid, Int32 cuid, out IntPtr instance);
Ejemplo n.º 13
0
 internal static extern pxcmStatus PXCMSession_QueryImpl(IntPtr session, ImplDesc templat, Int32 idx, [Out] ImplDesc desc);