Пример #1
0
        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("");
        }
Пример #2
0
        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( "" );
        }