Пример #1
0
        public void InitFromFile(string strFilename, string type)
        {
            Filename = strFilename;
            if (!File.Exists(strFilename) || !strFilename.EndsWith(".wav", StringComparison.CurrentCultureIgnoreCase))
            {
                return;
            }
            var        waveInfo1 = new Wrapper.WaveInfo();
            FileStatus waveInfo2;

            try
            {
                waveInfo2 = Wrapper.GetWaveInfo(strFilename, waveInfo1);
            }
            catch (Exception)
            {
                return;
            }
            if (waveInfo2 != FileStatus.kSuccess)
            {
                return;
            }
            if (waveInfo1.mIsCompressed != 0)
            {
                throw new MagmaException("Wave file " + strFilename + " is compressed.");
            }
            Length        = WavUtl.GetWavLength(waveInfo1);
            NumChannels   = waveInfo1.mNumChannels;
            SampleRate    = waveInfo1.mSampleRate;
            mStrType      = type;
            BitsPerSample = waveInfo1.mBitsPerSample;
        }
Пример #2
0
        public TrackInfo(string strFilename, string type, float pan, float attenuation, bool enabled)
        {
            mStrType    = type;
            Enabled     = enabled;
            Filename    = strFilename;
            NumChannels = 0;
            SampleRate  = 0;
            Length      = 0;
            panLeft     = pan;
            volLeft     = attenuation;
            if (!File.Exists(strFilename) || !strFilename.EndsWith(".wav", StringComparison.CurrentCultureIgnoreCase))
            {
                return;
            }
            var        waveInfo1 = new Wrapper.WaveInfo();
            FileStatus waveInfo2;

            try
            {
                waveInfo2 = Wrapper.GetWaveInfo(strFilename, waveInfo1);
            }
            catch (Exception)
            {
                return;
            }
            if (waveInfo2 != FileStatus.kSuccess)
            {
                return;
            }
            if (waveInfo1.mIsCompressed != 0)
            {
                throw new MagmaException("Wave file " + strFilename + " is compressed.");
            }
            Filename      = strFilename;
            NumChannels   = waveInfo1.mNumChannels;
            SampleRate    = waveInfo1.mSampleRate;
            Length        = WavUtl.GetWavLength(waveInfo1);
            BitsPerSample = waveInfo1.mBitsPerSample;
            SetAttenuation(attenuation);
            SetPan(pan);
        }