コード例 #1
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
        public WaveFormatEx(SDL_AudioFormat format, int channels, int sampleRate)
            : base(sampleRate, format.AUDIO_BITSIZE(), channels)
        {
            SDL_AudioFormat test_format  = format.FirstAudioFormat();
            bool            valid_format = false;

            while (!valid_format && test_format != 0)
            {
                switch (test_format)
                {
                case SDL_AudioFormat.U8:
                case SDL_AudioFormat.S16:
                case SDL_AudioFormat.S32:
                case SDL_AudioFormat.F32:
                    format       = test_format;
                    valid_format = true;
                    break;
                }
                test_format = format.NextAudioFormat();
            }

            if (!valid_format)
            {
                throw new NotSupportedException("XAudio2: Unsupported audio format");
            }

            switch (format)
            {
            case SDL_AudioFormat.U8:
                Silence = 0x80;
                break;

            default:
                Silence = 0x00;
                break;
            }

            waveFormatTag = format.AUDIO_ISFLOAT() ? WaveFormatEncoding.IeeeFloat : WaveFormatEncoding.Pcm;
            //bitsPerSample = (short)format.AUDIO_BITSIZE();
            //this.channels = (short)channels;
            //this.sampleRate = sampleRate;

            //blockAlign = (short)(channels * (bitsPerSample / 8));
            //averageBytesPerSecond = sampleRate * blockAlign;
            extraSize = (short)Marshal.SizeOf <WAVEFORMATEX>();
        }
コード例 #2
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
 public static bool AUDIO_ISINT(this SDL_AudioFormat x) => !x.AUDIO_ISFLOAT();