1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-29 10:07:28 +08:00
Commit Graph

33 Commits

Author SHA1 Message Date
Bartłomiej Dach
86588778b1 Implement fallback decoder registration
After the preparatory introduction of LineBufferedReader, it is now
possible to introduce registration of fallback decoders that won't drop
input supplied in the first line of the file.

A fallback decoder is used when the magic in the first line of the file
does not match any of the other known decoders. In such a case,
the fallback decoder is constructed and provided a LineBufferedReader
instance. The process of matching magic only peeks the first non-empty
line, so it is available for re-reading in Decode() using ReadLine().

There can be only one fallback decoder per type; a second attempt of
registering a fallback will result in an exception to avoid bugs.

To address the issue of parsing failing on badly or non-headered files,
set the legacy decoders for Beatmaps and Storyboards as the fallbacks.

Due to non-trivial logic, several new, passing unit tests with possible
edge cases also included.
2019-09-15 01:28:07 +02:00
Bartłomiej Dach
11eda44d34 Migrate decoding to line-buffered reader
Migrate all usages of StreamReader in the context of decoding beatmaps,
storyboards or skins to the new LineBufferedReader.
2019-09-15 01:28:07 +02:00
iiSaLMaN
7b04fb1690 StoryboardSample -> StoryboardSampleInfo 2019-08-23 14:54:39 +03:00
Dean Herbert
48716f8f2b Update framework 2019-08-21 13:29:50 +09:00
smoogipoo
ac2060f1cf Throw exceptions and let LegacyDecoder handle them 2019-08-08 14:44:04 +09:00
David Zhao
da15e19912 return on storyboard side 2019-08-07 18:40:58 +09:00
David Zhao
7bcec31ea3 mention that the event was the type 2019-08-07 17:08:41 +09:00
David Zhao
66b02c0283 log type as well 2019-08-06 12:27:10 +09:00
David Zhao
cd6fe91882 Log error for invalid events 2019-08-06 10:05:21 +09:00
Dean Herbert
612db31c38 Apply newline additions 2019-04-01 12:16:32 +09:00
Dan Balasescu
e45c08ad23
Adjust comment 2019-03-29 14:02:19 +09:00
Dean Herbert
92184adef5 Add stable sorting of storyboard elements 2019-03-26 16:37:52 +09:00
Dean Herbert
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
smoogipoo
f27bd3ef3e OpenTK -> osuTK 2018-11-20 17:14:59 +09:00
HoLLy
710b0a4664 Remove unnecessary PathSanitise call 2018-10-12 15:30:24 +02:00
smoogipoo
df84889646 Handle invalid origins as Anchor.TopLeft 2018-08-22 14:50:03 +09:00
smoogipoo
541c4daa81 Use ordinal string comparison in hot paths 2018-08-21 11:10:54 +09:00
smoogipoo
e360985d73 Replace variables into the entire line 2018-08-14 18:15:09 +09:00
morguldir
6c861a1638 Strip comments from everything except metadata 2018-07-16 01:04:41 +02:00
Dean Herbert
32a74f95a5 Normalize all the line endings 2018-04-13 18:26:38 +09:00
Dean Herbert
e43de68ad3 Move colour parsing to LegacyDecoder 2018-03-13 19:13:50 +09:00
Dean Herbert
217dd2ecdc Initial push for better decoders 2018-03-09 21:24:15 +09:00
james58899
fa800f0977
fix storyboard path 2018-01-23 18:18:54 +08:00
Dean Herbert
4c0259a040
Merge branch 'master' into fix-storyboard-variables 2018-01-09 11:50:03 +09:00
Dean Herbert
37d393bca0 Update licence headers 2018-01-05 20:21:19 +09:00
james58899
0158246ba1
AppVeyor 2018-01-04 19:23:00 +08:00
james58899
dcc4e863ab
move variables to StoryboardDecoder 2018-01-04 19:04:52 +08:00
james58899
89fe567496
use FileSafety.PathSanitise 2018-01-03 17:57:24 +08:00
Aergwyn
cc76c58f5f fall back to .osu file for storyboard if no .osb file is present
+ CI fixes
2017-12-02 16:05:39 +01:00
Aergwyn
c466296b14 reverted split at Decoder, moved logic down
I'm done experimenting, sorry
- `Decoder` only returns a "Beatmap"`Decoder` now
- "Storyboard"`Decoder` is retrieved from a "Beatmap"`Decoder`
- moved parse methods down in the hierarchy where I forgot to do that
- renamed `OsuLegacyDecoderTest` to `LegacyDecoderTest`
2017-12-01 22:05:01 +01:00
Aergwyn
a49f3479a2 Split retrieving of beatmap and storyboard decoder
Storyboard works again. Not satisfied with the solution though.
2017-12-01 19:11:52 +01:00
Aergwyn
db50ad794e CI adjustments
- removing unnecessary `using`s
- name Fields/Methods according to rules
- removing unnecessary initializations
2017-12-01 17:58:11 +01:00
Aergwyn
806c0e3b26 restructured OsuLegacyDecoder into LegacyDecoder
Beatmap works, Storyboard not...
2017-12-01 17:43:33 +01:00