OpenNI.Context.EnumerateLicenses C# (CSharp) Method

EnumerateLicenses() public method

public EnumerateLicenses ( ) : License[]
return License[]
        public License[] EnumerateLicenses()
        {
            IntPtr pArray;
            uint size;
            int status = SafeNativeMethods.xnEnumerateLicenses(this.InternalObject, out pArray, out size);
            WrapperUtils.ThrowOnError(status);

            License[] result = null;

            try
            {
                result = new License[size];
                IntPtr ptr = pArray;

                for (int i = 0; i < size; ++i)
                {
                    result[i] = (License)Marshal.PtrToStructure(ptr, typeof(License));
                    ptr = (IntPtr)(ptr.ToInt64() + Marshal.SizeOf(typeof(License)));
                }
            }
            finally
            {
                SafeNativeMethods.xnFreeLicensesList(pArray);
            }

            return result;
        }

Usage Example

コード例 #1
0
        static void Main(string[] args)
        {
            try {
                // 設定ファイルのパス(環境に合わせて変更してください)
                string CONFIG_XML_PATH = @"../../../../../Data/SamplesConfig.xml";

                // XMLをファイルから設定情報を取得して初期化する
                Console.Write(@"Context.InitFromXmlFile ... ");
                ScriptNode     scriptNode;
                OpenNI.Context context = OpenNI.Context.CreateFromXmlFile(CONFIG_XML_PATH, out scriptNode);
                Console.WriteLine(@"Success");

                // ライセンス情報を取得する
                Console.Write(@"Context.EnumerateLicenses ... ");
                License[] licenses = context.EnumerateLicenses();
                Console.WriteLine(@"Success");

                foreach (License license in licenses)
                {
                    Console.WriteLine(license.Vendor + @", " + license.Key);
                }

                // 登録されたデバイスを取得する
                Console.Write(@"Context.EnumerateExistingNodes ... ");
                NodeInfoList nodeList = context.EnumerateExistingNodes();
                Console.WriteLine(@"Success");

                foreach (NodeInfo node in nodeList)
                {
                    // GetDescriptionの呼び出しで落ちる、、、
                    //Console.WriteLine(node.Description.Name + "," +
                    //                  node.Description.Vendor + "," +
                    //                  node.InstanceName + ",");
                    Console.WriteLine(node.InstanceName);
                }

                Console.WriteLine(@"Shutdown");
            }
            catch (Exception ex) {
                Console.WriteLine(ex.Message);
            }
        }