Ejemplo n.º 1
0
        static void enumDevice()
        {
            // セッションを取得する
            var session = senseManager.QuerySession();

            if (session == null)
            {
                throw new Exception("セッションの取得に失敗しました");
            }

            // 取得するグループを設定する
            PXCMSession.ImplDesc mdesc = new PXCMSession.ImplDesc();
            mdesc.group    = PXCMSession.ImplGroup.IMPL_GROUP_SENSOR;
            mdesc.subgroup = PXCMSession.ImplSubgroup.IMPL_SUBGROUP_VIDEO_CAPTURE;

            for (int i = 0; ; ++i)
            {
                // センサーグループを取得する
                PXCMSession.ImplDesc desc1;
                var sts = session.QueryImpl(mdesc, i, out desc1);
                if (sts < pxcmStatus.PXCM_STATUS_NO_ERROR)
                {
                    break;
                }

                // センサーグループ名を表示する
                Console.WriteLine(desc1.friendlyName);

                // キャプチャーオブジェクトを作成する
                PXCMCapture capture = null;
                sts = session.CreateImpl <PXCMCapture>(desc1, out capture);
                if (sts < pxcmStatus.PXCM_STATUS_NO_ERROR)
                {
                    continue;
                }

                // デバイスを列挙する
                enumDevice(capture);

                // キャプチャーオブジェクトを解放する
                capture.Dispose();
            }
        }