예제 #1
0
        public void ExportToLrc()
        {
            var exportStorage = storage.GetStorageForDirectory("lrc");

            using (var outputStream = exportStorage.GetStream($"{beatmap.Name}.lrc", FileAccess.Write, FileMode.Create))
                using (var sw = new StreamWriter(outputStream))
                {
                    var encoder = new LrcEncoder();
                    sw.WriteLine(encoder.Encode(new Beatmap
                    {
                        HitObjects = beatmap.HitObjects.ToList()
                    }));
                }

            exportStorage.OpenInNativeExplorer();
        }
예제 #2
0
        private static Beatmap decode(string filename, out Beatmap encoded)
        {
            using (var stream = TestResources.OpenLrcResource(filename))
                using (var sr = new LineBufferedReader(stream))
                {
                    // Read file and decode to file
                    var legacyDecoded = new LrcDecoder().Decode(sr);

                    using (var ms = new MemoryStream())
                        using (var sw = new StreamWriter(ms))
                            using (var sr2 = new LineBufferedReader(ms))
                            {
                                // Then encode file to stream
                                var encodeResult = new LrcEncoder().Encode(legacyDecoded);
                                sw.WriteLine(encodeResult);
                                sw.Flush();

                                ms.Position = 0;

                                encoded = new LrcDecoder().Decode(sr2);
                                return(legacyDecoded);
                            }
                }
        }