static void enumDevice(PXCMCapture capture) { for (int i = 0; ; ++i) { // デバイス情報を取得する PXCMCapture.DeviceInfo dinfo; var sts = capture.QueryDeviceInfo(i, out dinfo); if (sts < pxcmStatus.PXCM_STATUS_NO_ERROR) { break; } // デバイス名を表示する Console.WriteLine("\t" + dinfo.name); // デバイスを取得する var device = capture.CreateDevice(i); for (int s = 0; s < PXCMCapture.STREAM_LIMIT; ++s) { // ストリーム種別を取得する PXCMCapture.StreamType type = PXCMCapture.StreamTypeFromIndex(s); if ((dinfo.streams & type) == 0) { continue; } // ストリーム名を取得する var name = PXCMCapture.StreamTypeToString(type); Console.WriteLine("\t\t" + name); // ストリームのフォーマットを取得する int nprofiles = device.QueryStreamProfileSetNum(type); for (int p = 0; p < nprofiles; ++p) { PXCMCapture.Device.StreamProfileSet profiles; sts = device.QueryStreamProfileSet(type, p, out profiles); if (sts < pxcmStatus.PXCM_STATUS_NO_ERROR) { break; } // ストリームのフォーマットを表示する Console.WriteLine("\t\t\t" + ProfileToString(profiles[type])); } } } Console.WriteLine(""); }
public static String ToString(this PXCMCapture.StreamType stream) { return(PXCMCapture.StreamTypeToString(stream)); }