public ExtractTrack(string file, long startSample, long endSample) : base(file) { startSample_ = startSample; endSample_ = endSample; string destFile = file + "." + startSample + ".flac"; Console.Write("Extracting..."); outStream_ = new FlacStream(destFile, FlacStream.StreamMode.CreateNew, FlacStream.StreamAccessMode.Both); outStream_.Encode(); stream_.Decode(); stream_.Close(); outStream_.Close(); outStream_ = new FlacStream(destFile, FlacStream.StreamMode.OpenExisting, FlacStream.StreamAccessMode.Both); outStream_.Encode(); streamInfo_.Header.IsLastMetadataBlock = true; streamInfo_.TotalSamples = sampleCount_; streamInfo_.Checksum[0] = 0; streamInfo_.Checksum[1] = 0; streamInfo_.Checksum[2] = 0; streamInfo_.Checksum[3] = 0; streamInfo_.Write(outStream_); outStream_.Close(); Done(); }
// dump whole file public CopyFile(string file) : base(file) { Console.Write("Copying..."); outStream_ = new FlacStream(file + ".copy.flac", FlacStream.StreamMode.CreateNew, FlacStream.StreamAccessMode.Both); outStream_.Encode(); stream_.Decode(); Done(); }