CSPspEmu.Hle.Modules.sc_sascore.sceSasCore.__sceSasInit C# (CSharp) Метод

__sceSasInit() приватный Метод

private __sceSasInit ( uint SasCorePointer, int GrainSamples, int MaxVoices, OutputMode OutputMode, int SampleRate ) : uint
SasCorePointer uint
GrainSamples int
MaxVoices int
OutputMode OutputMode
SampleRate int
Результат uint
        public uint __sceSasInit(uint SasCorePointer, int GrainSamples, int MaxVoices, OutputMode OutputMode, int SampleRate)
        {
            if (SampleRate != 44100)
            {
                throw (new SceKernelException(SceKernelErrors.ERROR_SAS_INVALID_SAMPLE_RATE));
            }

            CheckGrains(GrainSamples);

            if (MaxVoices < 1 || MaxVoices > PSP_SAS_VOICES_MAX)
            {
                throw(new SceKernelException(SceKernelErrors.ERROR_SAS_INVALID_MAX_VOICES));
            }

            if (OutputMode != sc_sascore.OutputMode.PSP_SAS_OUTPUTMODE_STEREO && OutputMode != sc_sascore.OutputMode.PSP_SAS_OUTPUTMODE_MULTICHANNEL)
            {
                throw (new SceKernelException(SceKernelErrors.ERROR_SAS_INVALID_OUTPUT_MODE));
            }

            var SasCore = GetSasCore(SasCorePointer, CreateIfNotExists: true);
            {
                SasCore.Initialized = true;
                SasCore.GrainSamples = GrainSamples;
                SasCore.MaxVoices = MaxVoices;
                SasCore.OutputMode = OutputMode;
                SasCore.SampleRate = SampleRate;
            }

            BufferTemp = new StereoIntSoundSample[SasCore.GrainSamples * 2];
            BufferShort = new StereoShortSoundSample[SasCore.GrainSamples * 2];
            MixBufferShort = new StereoShortSoundSample[SasCore.GrainSamples * 2];

            return 0;
        }