private static void dumpLineInfo(string text, Line.Info[] array)
        {
            int num = 0;

            if (array != null)
            {
                int num2 = array.Length;
                for (int i = 0; i < num2; i++)
                {
                    Line.Info info = array[i];
                    if (info is DataLine.Info)
                    {
                        AudioFormat[] formats = ((DataLine.Info)info).getFormats();
                        AudioFormat[] array2  = formats;
                        int           num3    = array2.Length;
                        for (int j = 0; j < num3; j++)
                        {
                            AudioFormat audioFormat = array2[j];
                            [email protected](new StringBuilder().append(text).append(audioFormat).toString());
                        }
                        num++;
                    }
                    else if (info is Port.Info)
                    {
                        [email protected](new StringBuilder().append(text).append(info).toString());
                        num++;
                    }
                }
            }
            if (num == 0)
            {
                [email protected](new StringBuilder().append(text).append("none").toString());
            }
        }
Beispiel #2
0
        public static AudioFormat getNativeAudioFormat(AudioFormat format, Mixer mixer)
        {
            Line.Info[] targetLineInfo;
            if (mixer != null)
            {
                targetLineInfo = mixer.getTargetLineInfo(new Line.Info(ClassLiteral <TargetDataLine> .Value));
            }
            else
            {
                targetLineInfo = AudioSystem.getTargetLineInfo(new Line.Info(ClassLiteral <TargetDataLine> .Value));
            }
            AudioFormat audioFormat = null;

            Line.Info[] array = targetLineInfo;
            int         num   = array.Length;

            for (int i = 0; i < num; i++)
            {
                Line.Info     info    = array[i];
                AudioFormat[] formats = ((DataLine.Info)info).getFormats();
                AudioFormat[] array2  = formats;
                int           num2    = array2.Length;
                for (int j = 0; j < num2; j++)
                {
                    AudioFormat audioFormat2 = array2[j];
                    if (audioFormat2.getEncoding() == format.getEncoding() && audioFormat2.isBigEndian() == format.isBigEndian() && audioFormat2.getSampleSizeInBits() == format.getSampleSizeInBits() && audioFormat2.getSampleRate() >= format.getSampleRate())
                    {
                        audioFormat = audioFormat2;
                        break;
                    }
                }
                if (audioFormat != null)
                {
                    break;
                }
            }
            return(audioFormat);
        }