コード例 #1
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
 public static SDL_AudioFormat FirstAudioFormat(this SDL_AudioFormat format)
 {
     for (_formatIdx = 0; _formatIdx < _formatList.Length; ++_formatIdx)
     {
         if (_formatList[_formatIdx][0] == format)
         {
             break;
         }
     }
     _formatIdxSub = 0;
     return(NextAudioFormat());
 }
コード例 #2
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>();
        }
コード例 #3
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
 public static SDL_AudioFormat NextAudioFormat(this SDL_AudioFormat useless) => NextAudioFormat();
コード例 #4
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
 public static bool AUDIO_ISUNSIGNED(this SDL_AudioFormat x) => !x.AUDIO_ISSIGNED();
コード例 #5
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
 public static bool AUDIO_ISLITTLEENDIAN(this SDL_AudioFormat x) => !x.AUDIO_ISBIGENDIAN();
コード例 #6
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
 public static bool AUDIO_ISINT(this SDL_AudioFormat x) => !x.AUDIO_ISFLOAT();
コード例 #7
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
 public static bool AUDIO_ISSIGNED(this SDL_AudioFormat x) => x.AND(AUDIO_MASK_SIGNED) != 0;
コード例 #8
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
 public static bool AUDIO_ISBIGENDIAN(this SDL_AudioFormat x) => x.AND(AUDIO_MASK_ENDIAN) != 0;
コード例 #9
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
 public static bool AUDIO_ISFLOAT(this SDL_AudioFormat x) => x.AND(AUDIO_MASK_DATATYPE) != 0;
コード例 #10
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
 public static int AUDIO_BITSIZE(this SDL_AudioFormat x) => x.AND(AUDIO_MASK_BITSIZE);
コード例 #11
0
ファイル: DxAudio.cs プロジェクト: MutoMagic/xstream
 static int AND(this SDL_AudioFormat x, int y) => (int)x & y;