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(""); }
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( "" ); }