Esempio n. 1
0
        unsafe public static List <DeviceInfo> GetDeviceList()
        {
            int            deviceCount = -1;
            OniDeviceInfo *deviceList  = (OniDeviceInfo *)IntPtr.Zero;
            OniStatus      status      = oniGetDeviceList(&deviceList, ref deviceCount);

            HandleError(status);

            List <DeviceInfo> list = new List <DeviceInfo>();

            for (int i = 0; i < deviceCount; i++)
            {
                DeviceInfo    tmpInfo    = new DeviceInfo();
                OniDeviceInfo deviceInfo = deviceList[i];
                tmpInfo.uri          = Marshal.PtrToStringAnsi((IntPtr)deviceInfo.uri);
                tmpInfo.name         = Marshal.PtrToStringAnsi((IntPtr)deviceInfo.name);
                tmpInfo.vendor       = Marshal.PtrToStringAnsi((IntPtr)deviceInfo.vendor);
                tmpInfo.usbProductId = deviceInfo.usbProductId;
                tmpInfo.usbVendorId  = deviceInfo.usbVendorId;
                list.Add(tmpInfo);
            }

            oniReleaseDeviceList((IntPtr)deviceList);

            return(list);
        }
 public static DeviceInfo ToManaged(this OniDeviceInfo oniDeviceInfo) => new DeviceInfo
 {
     Uri          = oniDeviceInfo.uri.ToManagedString(),
     Vendor       = oniDeviceInfo.vendor.ToManagedString(),
     Name         = oniDeviceInfo.name.ToManagedString(),
     UsbVendorId  = oniDeviceInfo.usbVendorId,
     UsbProductId = oniDeviceInfo.usbProductId
 };