Esempio n. 1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="stream">Stream to access in-memory data to be parsed</param>
        /// <param name="mimeType">Mime-type of the stream to process</param>
        /// <param name="readEmbeddedPictures">Embedded pictures will be read if true; ignored if false</param>
        /// <param name="readAllMetaFrames">All metadata frames (including unmapped ones) will be read if true; ignored if false</param>
        /// <param name="writeProgress">Object to use to signal writing progress (optional)</param>
        public AudioFileIO(Stream stream, String mimeType, bool readEmbeddedPictures, bool readAllMetaFrames = false, IProgress <float> writeProgress = null)
        {
            byte alternate = 0;
            bool found     = false;

            audioData = AudioDataIOFactory.GetInstance().GetFromMimeType(mimeType, "In-memory", alternate);

            audioManager       = new AudioDataManager(audioData, stream, writeProgress);
            this.writeProgress = writeProgress;
            found = audioManager.ReadFromFile(readEmbeddedPictures, readAllMetaFrames);

            while (!found && alternate < AudioDataIOFactory.MAX_ALTERNATES)
            {
                alternate++;
                audioData    = AudioDataIOFactory.GetInstance().GetFromMimeType(mimeType, "In-memory", alternate);
                audioManager = new AudioDataManager(audioData, stream, writeProgress);
                found        = audioManager.ReadFromFile(readEmbeddedPictures, readAllMetaFrames);
            }

            metaData = MetaDataIOFactory.GetInstance().GetMetaReader(audioManager);

            if (metaData is DummyTag && (0 == audioManager.getAvailableMetas().Count))
            {
                LogDelegator.GetLogDelegate()(Log.LV_WARNING, "Could not find any metadata");
            }
        }
Esempio n. 2
0
        private void testGenericAudio(
            string resource,
            int duration,
            int bitrate,
            int samplerate,
            bool isVbr,
            int codecFamily,
            ChannelsArrangement channelsArrangement,
            string formatName,
            int alternate = 0)
        {
            ConsoleLogger log         = new ConsoleLogger();
            string        theResource = TestUtils.GetResourceLocationRoot() + resource;

            IAudioDataIO theReader = AudioDataIOFactory.GetInstance().GetFromPath(theResource, alternate);

            Assert.IsNotInstanceOfType(theReader, typeof(ATL.AudioData.IO.DummyReader));

            AudioDataManager manager = new AudioDataManager(theReader);

            manager.ReadFromFile();

            Assert.AreEqual(duration, (int)Math.Round(theReader.Duration));
            Assert.AreEqual(bitrate, (int)Math.Round(theReader.BitRate));
            Assert.AreEqual(samplerate, theReader.SampleRate);
            Assert.AreEqual(theReader.IsVBR, isVbr);
            Assert.AreEqual(codecFamily, theReader.CodecFamily);
            Assert.AreEqual(channelsArrangement, theReader.ChannelsArrangement);
            Assert.AreEqual(formatName, theReader.AudioFormat.Name);
        }
Esempio n. 3
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="stream">Stream to access in-memory data to be parsed</param>
        /// <param name="mimeType">the file's mime type.</param>
        /// <param name="readEmbeddedPictures">Embedded pictures will be read if true; ignored if false</param>
        /// <param name="readAllMetaFrames">All metadata frames (including unmapped ones) will be read if true; ignored if false</param>
        public AudioFileIo(Stream stream, String mimeType, Boolean readEmbeddedPictures, Boolean readAllMetaFrames = false)
        {
            Byte alternate = 0;
            var  found     = false;

            _audioData = AudioDataIoFactory.GetInstance().GetFromMimeType(mimeType, "In-memory", alternate);

            _audioManager = new AudioDataManager(_audioData, stream);
            found         = _audioManager.ReadFromFile(readEmbeddedPictures, readAllMetaFrames);

            while (!found && alternate < AudioDataIoFactory.MaxAlternates)
            {
                alternate++;
                _audioData    = AudioDataIoFactory.GetInstance().GetFromMimeType(mimeType, "In-memory", alternate);
                _audioManager = new AudioDataManager(_audioData, stream);
                found         = _audioManager.ReadFromFile(readEmbeddedPictures, readAllMetaFrames);
            }

            _metaData = MetaDataIOFactory.GetInstance().GetMetaReader(_audioManager);

            if (_metaData is DummyTag && (0 == _audioManager.getAvailableMetas().Count))
            {
                LogDelegator.GetLogDelegate()(Log.LV_WARNING, "Could not find any metadata");
            }
        }
Esempio n. 4
0
        // ------------------------------------------------------------------------------------------

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="path">Path of the file to be parsed</param>
        public AudioFileIO(string path, bool readEmbeddedPictures, bool readAllMetaFrames = false)
        {
            byte alternate = 0;
            bool found     = false;

            thePath = path;

            audioData    = AudioDataIOFactory.GetInstance().GetDataReader(path, alternate);
            audioManager = new AudioDataManager(audioData);
            found        = audioManager.ReadFromFile(readEmbeddedPictures, readAllMetaFrames);

            while (!found && alternate < AudioDataIOFactory.MAX_ALTERNATES)
            {
                alternate++;
                audioData    = AudioDataIOFactory.GetInstance().GetDataReader(path, alternate);
                audioManager = new AudioDataManager(audioData);
                found        = audioManager.ReadFromFile(readEmbeddedPictures, readAllMetaFrames);
            }

            metaData = MetaDataIOFactory.GetInstance().GetMetaReader(audioManager);

            if (metaData is DummyTag && (0 == audioManager.getAvailableMetas().Count))
            {
                LogDelegator.GetLogDelegate()(Log.LV_WARNING, "Could not find any metadata");
            }
        }
Esempio n. 5
0
 public AudioDataManager(IAudioDataIO audioDataReader)
 {
     this.audioDataIO = audioDataReader;
 }
Esempio n. 6
0
        public void Audio_FallbackToDummy()
        {
            IAudioDataIO theReader = AudioDataIOFactory.GetInstance().GetFromPath(TestUtils.GetResourceLocationRoot() + "MP3/01 - Title Screen.xyz");

            Assert.IsInstanceOfType(theReader, typeof(ATL.AudioData.IO.DummyReader));
        }
Esempio n. 7
0
        public IAudioDataIO GetFromPath(String path, int alternate = 0)
        {
            IList <Format> formats = getFormatsFromPath(path);
            Format         theFormat;

            if (formats != null && formats.Count > alternate)
            {
                theFormat = formats[alternate];
            }
            else
            {
                theFormat = UNKNOWN_FORMAT;
            }

            int formatId = theFormat.ID;

            IAudioDataIO theDataReader = null;

            switch (formatId)
            {
            case CID_MP3:
                theDataReader = new IO.MPEGaudio(path, theFormat);
                break;

            case CID_AAC:
                theDataReader = new IO.AAC(path, theFormat);
                break;

            case CID_MP4:
                theDataReader = new IO.MP4(path, theFormat);
                break;

            case CID_WMA:
                theDataReader = new IO.WMA(path, theFormat);
                break;

            case CID_OGG:
                theDataReader = new IO.Ogg(path, theFormat);
                break;

            case CID_FLAC:
                theDataReader = new IO.FLAC(path, theFormat);
                break;

            case CID_MPC:
                theDataReader = new IO.MPEGplus(path, theFormat);
                break;

            case CID_AC3:
                theDataReader = new IO.AC3(path, theFormat);
                break;

            case CID_DSF:
                theDataReader = new IO.DSF(path, theFormat);
                break;

            case CID_DTS:
                theDataReader = new IO.DTS(path, theFormat);
                break;

            case CID_IT:
                theDataReader = new IO.IT(path, theFormat);
                break;

            case CID_MIDI:
                theDataReader = new IO.Midi(path, theFormat);
                break;

            case CID_MOD:
                theDataReader = new IO.MOD(path, theFormat);
                break;

            case CID_APE:
                theDataReader = new IO.APE(path, theFormat);
                break;

            case CID_OFR:
                theDataReader = new IO.OptimFrog(path, theFormat);
                break;

            case CID_WAVPACK:
                theDataReader = new IO.WAVPack(path, theFormat);
                break;

            case CID_WAV:
                theDataReader = new IO.WAV(path, theFormat);
                break;

            case CID_PSF:
                theDataReader = new IO.PSF(path, theFormat);
                break;

            case CID_SPC:
                theDataReader = new IO.SPC(path, theFormat);
                break;

            case CID_TAK:
                theDataReader = new IO.TAK(path, theFormat);
                break;

            case CID_S3M:
                theDataReader = new IO.S3M(path, theFormat);
                break;

            case CID_XM:
                theDataReader = new IO.XM(path, theFormat);
                break;

            case CID_TTA:
                theDataReader = new IO.TTA(path, theFormat);
                break;

            case CID_VQF:
                theDataReader = new IO.TwinVQ(path, theFormat);
                break;

            case CID_AIFF:
                theDataReader = new IO.AIFF(path, theFormat);
                break;

            case CID_VGM:
                theDataReader = new IO.VGM(path, theFormat);
                break;

            case CID_GYM:
                theDataReader = new IO.GYM(path, theFormat);
                break;

            case CID_AA:
                theDataReader = new IO.AA(path, theFormat);
                break;

            default:
                theDataReader = new IO.DummyReader(path);
                break;
            }

            return(theDataReader);
        }
        public IAudioDataIO GetFromMimeType(String mimeType, String path, Int32 alternate = 0)
        {
            IList <Format> formats;

            if (mimeType.StartsWith("."))
            {
                formats = getFormatsFromPath(mimeType);
            }
            else
            {
                formats = getFormatsFromMimeType(mimeType);
            }

            var formatId = NO_FORMAT;

            if (formats != null && formats.Count > alternate)
            {
                formatId = formats[alternate].ID;
            }

            IAudioDataIO theDataReader = null;

            switch (formatId)
            {
            case CidMp3:
                theDataReader = new IO.MPEGaudio(path);
                break;

            case CidAac:
                theDataReader = new IO.AAC(path);
                break;

            case CidWma:
                theDataReader = new IO.WMA(path);
                break;

            case CidOgg:
                theDataReader = new IO.Ogg(path);
                break;

            case CidFlac:
                theDataReader = new IO.FLAC(path);
                break;

            case CidMpc:
                theDataReader = new IO.MPEGplus(path);
                break;

            case CidAc3:
                theDataReader = new IO.AC3(path);
                break;

            case CidDsf:
                theDataReader = new IO.DSF(path);
                break;

            case CidDts:
                theDataReader = new IO.DTS(path);
                break;

            case CidIt:
                theDataReader = new IO.IT(path);
                break;

            case CidMidi:
                theDataReader = new IO.Midi(path);
                break;

            case CidMod:
                theDataReader = new IO.MOD(path);
                break;

            case CidApe:
                theDataReader = new IO.APE(path);
                break;

            case CidOfr:
                theDataReader = new IO.OptimFrog(path);
                break;

            case CidWavpack:
                theDataReader = new IO.WAVPack(path);
                break;

            case CidWav:
                theDataReader = new IO.WAV(path);
                break;

            case CidPsf:
                theDataReader = new IO.PSF(path);
                break;

            case CidSpc:
                theDataReader = new IO.SPC(path);
                break;

            case CidTak:
                theDataReader = new IO.TAK(path);
                break;

            case CidS3M:
                theDataReader = new IO.S3M(path);
                break;

            case CidXm:
                theDataReader = new IO.XM(path);
                break;

            case CidTta:
                theDataReader = new IO.TTA(path);
                break;

            case CidVqf:
                theDataReader = new IO.TwinVQ(path);
                break;

            case CidAiff:
                theDataReader = new IO.AIFF(path);
                break;

            case CidVgm:
                theDataReader = new IO.VGM(path);
                break;

            case CidGym:
                theDataReader = new IO.GYM(path);
                break;

            default:
                theDataReader = new IO.DummyReader(path);
                break;
            }

            return(theDataReader);
        }
Esempio n. 9
0
 public AudioDataManager(IAudioDataIO audioDataReader, IProgress <float> writeProgress = null)
 {
     this.audioDataIO   = audioDataReader;
     this.stream        = null;
     this.writeProgress = writeProgress;
 }
Esempio n. 10
0
 public AudioDataManager(IAudioDataIO audioDataReader, Stream stream)
 {
     audioDataIO = audioDataReader;
     this.stream = stream;
 }
Esempio n. 11
0
 public AudioDataManager(IAudioDataIO audioDataReader)
 {
     audioDataIO = audioDataReader;
     stream      = null;
 }
 public AudioDataManager(IAudioDataIO audioDataReader)
 {
     this.audioDataIO = audioDataReader;
     this.stream      = null;
 }