Commit Graph

83 Commits

Author SHA1 Message Date
Dean Herbert 59e763467f Move `StoragePath` implementation to an extension method 2021-11-19 16:08:38 +09:00
Naxesss b888185799 Properly dispose of `Stream` in bg quality check 2021-11-10 05:06:11 +01:00
Dean Herbert e43d91ad5d Fix another case of incorrect null checking in editor verification processing 2021-11-04 15:18:10 +09:00
Dean Herbert 1e73b09e57 Fix another couple of cases of incorrect string null/empty checking 2021-11-04 14:22:28 +09:00
Dean Herbert 6944151486 Apply batch fixing of built-in types using `var` 2021-10-27 13:04:41 +09:00
Bartłomiej Dach c7db286b94
Merge branch 'master' into file-sanity-checks 2021-10-14 00:17:29 +02:00
Dean Herbert 82f7f99f37 Refactor to use scoped `using` (and also correctly dispose TagLib portion) 2021-10-12 10:46:26 +09:00
Naxesss f2f97602f2 Dispose of video resource later
We need the Stream to stay open here because `StreamFileAbstraction` uses it later in the block.
2021-10-12 00:40:39 +02:00
Naxesss 47b4d03145 Dispose of `Stream`s when used 2021-10-12 00:13:38 +02:00
Naxesss ce69dd3588 Use `Prescan` flag for audio length check 2021-10-11 23:57:23 +02:00
Naxesss 8f093b9a11 Use TagLib instead of ManagedBass 2021-10-11 13:56:26 +02:00
Naxesss f0cd18a721 Only check each video file once 2021-10-11 13:55:50 +02:00
Naxesss 6aa054b5fa Change to non-BASS error template 2021-10-11 13:53:23 +02:00
Naxess 6da2a3d51f Add zero-length objects check and tests 2021-07-13 10:50:11 +02:00
Naxess dc4285582b Fix misplaced "f" in issue message 2021-07-13 06:07:04 +02:00
Naxess c8f58cbf6c Add audio in video check and tests 2021-07-13 04:17:41 +02:00
Naxess a4a1919842 Add too short audio files check and tests 2021-07-13 03:46:45 +02:00
Naxess 0a8fd01b99 Add zero byte check and tests 2021-07-13 03:45:21 +02:00
Naxess 9f9e96ce9e Add check for `spanDuration` <= 0 prior to division 2021-06-27 15:40:09 +02:00
Naxess a4a5325b73 Improve acceptable difference for repeat edges
Likelihood that `spanDuration` is greater than E+7 is quite low in any realistic case, so this should work fine.
2021-06-27 15:39:31 +02:00
Naxess 4cfa0ae5ec Improve precision for repeat edges 2021-06-27 03:26:35 +02:00
Naxess 2cd7eda3c4 Add "or equal to" to volume threshold xmldocs 2021-06-27 02:30:12 +02:00
Naxess 0c0fd291d9 Order hitobjects by endtime 2021-06-27 01:25:03 +02:00
Naxess 4796b1b208 Use local variables for `hasHitsound` & `couldHaveHitsound` 2021-06-27 00:04:30 +02:00
Naxess 5bc08ebadb Rename `hasHitsounds` -> `mapHasHitsounds` 2021-06-26 23:49:25 +02:00
Naxess d29e6f4695 Add negligible template to `PossibleTemplates` 2021-06-26 23:49:06 +02:00
Naxess 1913084342 Use `HitSampleInfo.AllAdditions` instead of new list 2021-06-26 23:48:28 +02:00
Naxess f78cc9397e Factor out edge type logic 2021-06-26 20:45:31 +02:00
Naxess 51147405c5 Make || and && priority explicit 2021-06-26 20:44:39 +02:00
Naxess 4b436b774d Add few hitsounds check 2021-06-26 19:20:46 +02:00
Naxess d8117fa730 Add muted objects check 2021-06-26 19:20:34 +02:00
Dean Herbert fcb226bd20 Add local variable for regular access to `HitObjects` 2021-05-14 16:23:45 +09:00
Naxess 19800f5f7f Move `IBeatmap` arg into context 2021-05-13 11:24:22 +02:00
Naxess b7bc42e0d3 Rename "playableBeatmap" check arg to "beatmap"
The working beatmap is now in the context, so it's easier to distinguish beatmap type, hence no need for this prefix.
2021-05-12 02:34:16 +02:00
Naxess c13b93e6f1 Replace `IWorkingBeatmap` arg with `BeatmapVerifierContext` in checks
This simplifies passing of contextual information by enabling addition without needing to refactor lots of classes.

See next commit for example.
2021-05-12 02:29:18 +02:00
Naxess 75adec57eb Remove negligible default hidden TODO 2021-05-12 01:31:16 +02:00
Dean Herbert f3c7694eeb Rename methods to match generally how these find-methods are named elsewhere 2021-04-28 16:57:52 +09:00
Dean Herbert 48d6c9ac4b Move snap/divisor helper methods to inside `ControlPointInfo` 2021-04-28 16:47:30 +09:00
Naxess 200352b750 Rename unsnap check templates 2021-04-27 13:56:05 +02:00
Naxess 7a6e9e5070 Change category of unsnap check to timing
Makes more sense, as this is typically the result of timing changes.
2021-04-27 02:32:57 +02:00
Naxess 9e49ecb573 Remove unused `virtual` keywords
Added these in a previous iteration, where I had the mania variant inherit this class.

No longer necessary as `IHasColumn` was used to make this check more generic.
2021-04-27 02:23:06 +02:00
Naxess a3c1b1fd52 Fix accessibility of `areConcurrent` 2021-04-27 01:24:38 +02:00
Naxess ce258febf6 Rename `CheckUnsnaps` -> `CheckUnsnappedObjects`
Will potentially have `CheckUnsnappedKiai` or similar later, so this is worth specifying.

Also consistent with `CheckConcurrentObjects`, which will likely have a `CheckConcurrentLines` later.
2021-04-26 20:32:44 +02:00
Naxess a3570e18dd Add concurrent objects check
Here we use `IHasColumn` to support rulesets with columns, and so I moved that interface out into `osu.Game` from `osu.Game.Rulesets.Mania`.

We also use the same threshold as the unsnap check to ensure that no problems slip through. Specifically where an object is simultaneously not concurrent and not unsnapped but still on the same tick.
2021-04-26 20:17:18 +02:00
Naxess 9b9c473616 Remove redundant string formatting 2021-04-26 16:17:38 +02:00
Naxess 7b9ed924be Rename snapping methods
Further separates them from `IBeatSnapProvider`'s `SnapTime`, and groups them together more, to prevent confusion between the two interfaces.

Also changes the xmldoc of the reference time to that of `IBeatSnapProvider` for consistency.
2021-04-26 16:07:30 +02:00
Naxess 049e42fa85 Move snapping responsibility to `IBeatmap`
Seems `EditorBeatmap` already implements a different kind of `SnapTime` from `IBeatSnapProvider`, so method names here aren't great.

This is very similar to what https://github.com/ppy/osu/pull/12558 is doing, so may need to do some duplicate resolution later, especially surrounding `ClosestBeatSnapDivisor`.

Worth noting that this change makes 1/7, 1/5, etc unsupported for now, as we now rely on `BindableBeatDivisor.VALID_DIVISORS`.
2021-04-26 05:07:24 +02:00
Naxess 6fd77e536d Add unsnap check 2021-04-25 05:34:54 +02:00
Naxess 4510e795e1 Fix category of audio quality check 2021-04-20 02:13:26 +02:00
Naxess c633f15565 Add audio quality check 2021-04-20 01:36:03 +02:00