/// <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;
		}
        /// <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);
        }