예제 #1
0
        /// <summary>
        /// Gets the appropriate physical data reader for a given file
        /// </summary>
        /// <param name="formatId">ID of the format</param>
        /// <param name="path">Path of the file</param>
        /// <returns>AudioDataReader able to give info about the file's contents (or the dummy reader if the format is unknown)</returns>
        public AudioDataReader GetDataReader(String path, int formatId)
        {
            AudioDataReader theDataReader = null;

            switch (formatId)
            {
            case CID_MP3:
                theDataReader = new BinaryLogic.TMPEGaudio();
                break;

            case CID_OGG:
                theDataReader = new BinaryLogic.TOggVorbis();
                break;

            case CID_MPC:
                theDataReader = new BinaryLogic.TMPEGplus();
                break;

            case CID_FLAC:
                theDataReader = new BinaryLogic.TFLACFile();
                break;

            case CID_APE:
                theDataReader = new BinaryLogic.TMonkey();
                break;

            case CID_WMA:
                theDataReader = new BinaryLogic.TWMAfile();
                break;

            case CID_MIDI:
                theDataReader = new BinaryLogic.Midi();
                break;

            case CID_AAC:
                theDataReader = new BinaryLogic.TAACfile();
                break;

            case CID_AC3:
                theDataReader = new BinaryLogic.TAC3();
                break;

            case CID_OFR:
                theDataReader = new BinaryLogic.TOptimFrog();
                break;

            case CID_WAVPACK:
                theDataReader = new BinaryLogic.TWAVPackfile();
                break;

            case CID_WAV:
                theDataReader = new BinaryLogic.TWAVfile();
                break;

            case CID_PSF:
                theDataReader = new BinaryLogic.TPSFFile();
                break;

            case CID_SPC:
                theDataReader = new BinaryLogic.TSPCFile();
                break;

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

            theDataReader.ReadFromFile(path);

            return(theDataReader);
        }
        /// <summary>
        /// Gets the appropriate physical data reader for a given file and format codec
        /// </summary>
        /// <param name="path">The path of the file</param>
        /// <param name="code">The codec of the file</param>
        /// <returns>AudioDataReader able to give info about the file's contents (or the dummy reader if the format is unknown)</returns>
        public IAudioReader GetDataReader(String path, Codec codec)
        {
            IAudioReader theDataReader = null;

            switch (codec)
            {
            case Codec.MP3:
                theDataReader = new BinaryLogic.TMPEGaudio();
                break;

            case Codec.OGG:
                theDataReader = new BinaryLogic.TOggVorbis();
                break;

            case Codec.MPC:
                theDataReader = new BinaryLogic.TMPEGplus();
                break;

            case Codec.FLAC:
                theDataReader = new BinaryLogic.TFLACFile();
                break;

            case Codec.APE:
                theDataReader = new BinaryLogic.TMonkey();
                break;

            case Codec.WMA:
                theDataReader = new BinaryLogic.TWMAfile();
                break;

            case Codec.MIDI:
                theDataReader = new BinaryLogic.Midi();
                break;

            case Codec.AAC:
                theDataReader = new BinaryLogic.TAACfile();
                break;

            case Codec.AC3:
                theDataReader = new BinaryLogic.TAC3();
                break;

            case Codec.OFR:
                theDataReader = new BinaryLogic.TOptimFrog();
                break;

            case Codec.WAVPACK:
                theDataReader = new BinaryLogic.TWAVPackfile();
                break;

            case Codec.WAV:
                theDataReader = new BinaryLogic.TWAVfile();
                break;

            case Codec.PSF:
                theDataReader = new BinaryLogic.TPSFFile();
                break;

            case Codec.SPC:
                theDataReader = new BinaryLogic.TSPCFile();
                break;

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

            theDataReader.ReadFromFile(path);

            return(theDataReader);
        }