Пример #1
0
        /// <summary>
        /// Create a RIFF wave from a vibration.
        /// </summary>
        /// <param name="v">Vibration file.</param>
        /// <returns>The RIFF wave as a vibration.</returns>
        public static RiffWave CreateRiffWave(Vibration v)
        {
            //New wave.
            RiffWave r = new RiffWave();

            //Not looped.
            if (!v.Loops)
            {
                r = RiffWaveFactory.CreateRiffWave(200, 1, EncoderFactory.SignedPcm8ToPcm8(new sbyte[][] { v.pcm8 }));
            }

            //Looped.
            else
            {
                r = RiffWaveFactory.CreateRiffWave(200, 1, EncoderFactory.SignedPcm8ToPcm8(new sbyte[][] { v.pcm8 }), v.LoopStart, v.LoopEnd);
            }

            return(r);
        }
Пример #2
0
        /// <summary>
        /// Get data from a b_stm.
        /// </summary>
        /// <param name="wavInfo"></param>
        /// <returns></returns>
        public object GetDataSTM(b_stm.StreamSoundInfo wavInfo, b_stm.InfoBlock info)
        {
            object returnValue = null;

            //See encoding.
            switch (wavInfo.encoding)
            {
            case EncodingTypes.PCM8:
                return(EncoderFactory.SignedPcm8ToPcm8(pcm8));

            case EncodingTypes.PCM16:
                return(pcm16);

            case EncodingTypes.DSP_ADPCM:
                List <DspAdpcmInfo> context = new List <DspAdpcmInfo>();
                foreach (b_stm.ChannelInfo c in info.channels)
                {
                    context.Add(c.dspAdpcmInfo);
                }
                return(EncoderFactory.DspApcmToPcm16(dspAdpcm, wavInfo.sampleCount, context.ToArray()));
            }

            return(returnValue);
        }
Пример #3
0
        /// <summary>
        /// Get data from a b_wav.
        /// </summary>
        /// <param name="wavInfo"></param>
        /// <returns></returns>
        public object GetDataWAV(b_wav.InfoBlock wavInfo)
        {
            object returnValue = null;

            //See encoding.
            switch (wavInfo.encoding)
            {
            case EncodingTypes.PCM8:
                return(EncoderFactory.SignedPcm8ToPcm8(pcm8));

            case EncodingTypes.PCM16:
                return(pcm16);

            case EncodingTypes.DSP_ADPCM:
                List <DspAdpcmInfo> context = new List <DspAdpcmInfo>();
                foreach (b_wav.InfoBlock.ChannelInfo c in wavInfo.channelInfo)
                {
                    context.Add(c.dspAdpcmInfo);
                }
                return(EncoderFactory.DspApcmToPcm16(dspAdpcm, wavInfo.loopEnd, context.ToArray()));
            }

            return(returnValue);
        }