1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 16:25:32 +08:00
Commit Graph

485 Commits

Author SHA1 Message Date
Dean Herbert
54e53f7190 Fix player getting loaded when exiting song select 2018-05-30 15:48:20 +09:00
smoogipoo
f1ac84d95b Fix base.CreateLocalDependencies sometimes not being called 2018-05-24 13:03:25 +09:00
smoogipoo
8004b8af4d Privatise the OsuGame beatmap, add local beatmap to OsuTestCase 2018-05-23 17:38:02 +09:00
Dean Herbert
32a74f95a5 Normalize all the line endings 2018-04-13 18:26:38 +09:00
Dean Herbert
62229300c4 Fix DummyRuleset getting selected
Resolves #2261.
2018-03-22 00:26:48 +09:00
Dean Herbert
db2a663234 Use private instead of protected 2018-03-11 01:26:03 +09:00
naoey
2c0488b1f1
Invert bool, add test, and handle ruleset change. 2018-03-09 19:39:28 +05:30
naoey
d04f47718f
Make song select choose random when initial selection fails.
- Revert TestCasePlaySongSelect to master
2018-03-09 17:36:55 +05:30
naoey
25fb527cc7
Remove previous fix and move filtered logic to carousel.
- Add an optional bool parameter to SelectBeatmap to skip selecting
filtered maps
2018-03-09 15:51:00 +05:30
naoey
a57dc154f9
More specific tests. 2018-03-03 20:34:29 +05:30
naoey
307147a8a3
Merge remote-tracking branch 'upstream/master' into fix-unplayable-beatmaps 2018-03-03 16:10:22 +05:30
naoey
fb724ca8a7
Make song select ensure current beatmap is always playable in the active ruleset.
- Add a to TestCasePlaySongSelect testing this scenario
2018-03-03 16:09:24 +05:30
Dean Herbert
510ecd7c87 Ensure selection is finalised before exiting song select
Resolves #2080.
2018-02-28 00:07:28 +09:00
Dean Herbert
ddf49c2e65 Fix intro not being replaced by a playable song when entering song select 2018-02-16 10:45:15 +09:00
Dean Herbert
d340509b1d Move ArchiveReaders to a more global namespace
Also moves delete and action logic to a shared implementation
2018-02-15 14:22:39 +09:00
Dean Herbert
6e0cb1adb3 Remove redundant arguments 2018-01-29 15:05:07 +09:00
smoogipoo
b4e1872322 osu!-side changes in-line with framework BDL cache changes 2018-01-22 12:56:30 +09:00
TocoToucan
3c11978cfa Use local functions 2018-01-15 21:42:17 +03:00
Dean Herbert
37d393bca0 Update licence headers 2018-01-05 20:21:19 +09:00
Dean Herbert
dfee8e911f Fix dummy beatmap selection not propagating to song select components 2017-12-31 12:55:53 +09:00
Dean Herbert
e0f23a056a Fix crash from being able to perform selection after entering play mode
Closes #1757
2017-12-28 21:07:19 +09:00
Dean Herbert
18d2be75d5 Fix random selection happening more than once on quick imports 2017-12-27 13:04:50 +09:00
Dean Herbert
3182c22c7d Merge remote-tracking branch 'upstream/master' into hide-useless-beatmap-info 2017-12-26 20:36:22 +09:00
Dean Herbert
7504cd589d Move alpha handling to state 2017-12-26 20:18:47 +09:00
Dean Herbert
ee67e7119d Merge remote-tracking branch 'upstream/master' into fix-info-wedge 2017-12-26 19:44:28 +09:00
Dean Herbert
798c2c6666 Add special logic to song select to avoid obvious clipping when notifications are displayed
Not sure if we will keep this going forward (there will likely be an opaque tab control on the notifications overlay similar to options) but let's go with this for now.
2017-12-26 02:52:43 +09:00
Dean Herbert
482e10966c Ensure a selection is made on entering song select if no selection is current 2017-12-24 17:02:56 +09:00
Dean Herbert
cf316b3c51 Add tests for initial load states of PlaySongSelect 2017-12-24 15:39:25 +09:00
Dean Herbert
2313ff0ddb Fix beatmap info wedge not showing up when zero beatmaps are loaded
Closes #1722.
2017-12-22 22:19:11 +09:00
Dean Herbert
5c9d484395 Adjust debounce a bit 2017-12-22 00:50:32 +09:00
Dean Herbert
4c1f00567b Fix incorrect flush logic when starting play from non-selected difficulty using context menu 2017-12-18 11:31:38 +09:00
Dean Herbert
30a15729ec Fix event handling from outside carousel being scheduled at the wrong level
Was causing BeatmapSet's Set to run *after* newer events were received.
2017-12-18 02:46:53 +09:00
Dean Herbert
33f8c8419a Fix initial beatmap selection potentially being incorrect 2017-12-16 21:25:54 +09:00
Dean Herbert
df7e795aa3 Simplify and rename filter methods 2017-12-16 16:27:39 +09:00
Dean Herbert
59d512762e SongSelect tidying 2017-12-15 14:44:14 +09:00
Dean Herbert
5cbb9b9b18 Fix random and add tests
Also exposes SelectedBeatmapSet.
2017-12-15 14:36:51 +09:00
Dean Herbert
1b85952441 Cleanup and basic TestCase 2017-12-15 14:36:51 +09:00
Dean Herbert
99b00143eb More clean-ups and event bindings 2017-12-15 14:36:51 +09:00
Dean Herbert
78dd975a35 Initial carousel infrastructue changes 2017-12-15 14:36:51 +09:00
Aergwyn
9fed972678 removed unnecessary using 2017-12-12 11:15:34 +01:00
Aergwyn
d11bf379d8 no longer select beatmapsets on import/download
let's save some ears and eyes for now
2017-12-12 11:04:11 +01:00
Aergwyn
e4628427cb moved query into schedule 2017-12-10 08:15:29 +01:00
Aergwyn
dde7678095 select beatmap on import/download 2017-12-08 13:09:30 +01:00
Aergwyn
3e417d8e30 removed specific AddBeatmap method
the way UpdateBeatmapSet was extended it can handle all of this and better
2017-12-08 12:47:28 +01:00
Aergwyn
105d01d85b fix crash when restoring from any non-SongSelect-screen
removed unwanted refresh
2017-12-07 22:02:53 +01:00
Aergwyn
011223048b fix crash if any amount of maps were restored from main menu
also fixes preview not playing if an entire set is restored
2017-12-04 11:47:27 +01:00
Dean Herbert
70b29b8b62
Merge branch 'master' into fix-set-hidden-crash 2017-12-01 23:35:48 +09:00
Aergwyn
acb2cafa58 fix wedge not appearing 2017-11-29 21:09:08 +01:00
mattiapette
6dd6f08bd0 Random song selection when entering the select menu with default osu theme or invalid beatmap 2017-11-29 11:51:56 +01:00
Dean Herbert
7877f42763 Merge remote-tracking branch 'upstream/master' into new-sounds-and-more 2017-11-27 17:59:24 +09:00
Dean Herbert
5aa6615107 Add confirm-selection sound in song select 2017-11-26 17:21:22 +09:00
Dean Herbert
ae48b85827 Don't play logo select sample when actions are playing their own 2017-11-26 17:17:47 +09:00
Dean Herbert
69e388dd52 Adjust background blur rate 2017-11-26 17:08:14 +09:00
Dean Herbert
1824540325 Schedule calls to correct thread
These could be fired from an async worker thread (for instance, maintenance operations).
2017-11-23 17:02:54 +09:00
Dean Herbert
49a5af60e2 Fix multiple order-of-execution issues with osu! logo
Also sets better defaults.
2017-11-13 18:43:16 +09:00
Dean Herbert
9e82fc21ac Improve transition when exiting song select
Reduces the delay before the main menu appears, but also synchronises the full main menu appearance animation with the logo's apperance.
2017-11-10 01:10:44 +09:00
Dean Herbert
4874371dbf Rename methods back 2017-11-09 17:38:20 +09:00
Dean Herbert
c2d4a213b1 Rename logo-related methods 2017-11-08 16:34:03 +09:00
Dean Herbert
b8b05fe8d2 Make the osu! logo shared game-wide
There should only ever be one osu! logo. It is now passed around between screens in a superfluous manner.
2017-11-02 20:38:02 +09:00
Dean Herbert
31dc5c97f2 Fix intro and duplicate inserts 2017-10-17 11:22:42 +09:00
smoogipoo
b178be21d1 Let's not rename columns yet 2017-10-14 14:30:58 +09:00
TocoToucan
8b01f8671f Merge from ppy/master 2017-10-10 21:07:36 +03:00
smoogipoo
d3109a5950 Hook up BeatmapPanel "Edit" item 2017-10-07 00:59:14 +09:00
TocoToucan
6a4198d0d6 Initial EF Core commit 2017-10-04 22:52:12 +03:00
Dean Herbert
120446e4a7 Ensure only one dialog is being displayed by the SongSelect footer at a time
Fixes #1208
2017-09-20 14:32:15 +09:00
Dean Herbert
b1145272d1 Update code to support new inspectcode analysis rules 2017-09-14 12:58:32 +09:00
Dean Herbert
543a71efcc Fix ObjectDisposal exceptions due to lingering event binds 2017-09-04 08:21:07 +09:00
Dean Herbert
dd26c80837 Delete -> Hide 2017-09-04 07:59:32 +09:00
Dean Herbert
3d61cde266 Correctly delay loading of PlaySongSelect-specific components 2017-09-01 18:22:38 +09:00
Dean Herbert
1f646e6d54 Add hiding support for beatmap difficulties 2017-09-01 17:57:12 +09:00
Dean Herbert
3b4b4b669b Add framework for deleting difficulties 2017-08-30 21:12:46 +09:00
Dean Herbert
2fb4126ffc Use BeatmapSetInfo instead of WorkingBeatmap 2017-08-30 20:53:33 +09:00
Dean Herbert
07da29ea1c Add context menu to beatmap set header 2017-08-30 20:41:41 +09:00
Huo Yaoyuan
4aa5ce8b41 Always load background and info wedge when no beatmap available. 2017-08-28 17:53:57 +08:00
Shane Woolcock
4901ac9e35 Add some comments explaining why the Track is being forcefully added to the TrackManager 2017-08-18 18:01:18 +09:30
Dean Herbert
ffc8f763e5 Merge branch 'master' into fix-track-not-resetting 2017-08-18 17:24:22 +09:00
Dan Balasescu
cc6a5824f0 Merge branch 'master' into fix-ruleset-changing 2017-08-18 13:40:52 +09:00
Dean Herbert
6ded194c53 Remove all usage of DI to retrieve InputManager
Uses GetContainingInputManager instead, as per framework changes.
2017-08-15 14:30:50 +09:00
Shane Woolcock
096e574401 Selecting a beatmap set no longer updates the ruleset to the first map of that set (since it causes the carousel to refilter) 2017-08-12 19:52:09 +09:30
Shane Woolcock
e48c5898bd Ensure the Track for the selected beatmap is added to the TrackManager. Fixes the problem where a beatmap would be stuck at 100% if it is replayed. 2017-08-11 17:26:30 +09:30
Huo Yaoyuan
62b3540fd6 Merge branch 'master' into fixes 2017-08-04 13:49:03 +08:00
Huo Yaoyuan
44fd0eb78b Pass input state in OnSelected. 2017-08-04 00:09:41 +08:00
Dean Herbert
c8b5c1b8a5 Merge branch 'master' into scroll_to_selected 2017-08-01 11:06:32 +09:00
EVAST9919
700c7753c3 Applied suggestions 2017-07-31 14:20:12 +03:00
Huo Yaoyuan
df3f75b842 Merge branch 'master' into fixes 2017-07-31 17:51:34 +08:00
EVAST9919
62365090ad Removed useless variable 2017-07-29 17:51:11 +03:00
EVAST9919
e121b119be Added "scroll to" container 2017-07-29 17:33:20 +03:00
Dean Herbert
e691dd12c5 Fix potential sequen of execution issues in BeatmapCarousel 2017-07-28 15:05:08 +09:00
Dean Herbert
5f53426a9a *Database -> *Store
Welcome back BeatmapManager
2017-07-27 16:56:41 +09:00
Dean Herbert
cbe7b08642 Make BeatmapStore's BeatmapDatabase private 2017-07-27 15:34:13 +09:00
Dean Herbert
96b08b8777 Simplify and document DatabaseStore API 2017-07-27 15:06:10 +09:00
Dean Herbert
9e20a02c0a Split out BeatmapDatabase into BeatmapStore
Hide database functionality at a lower level in preparation from eventually making it private.
2017-07-26 16:31:34 +09:00
Dean Herbert
fce580d717 Reshuffle namespaces 2017-07-26 13:22:46 +09:00
Huo Yaoyuan
47b4ef5cd2 Handle control key with OnKeyUp/OnKeyDown. 2017-07-24 22:14:21 +08:00
Huo Yaoyuan
c2e5788ed1 Make OsuScreen.Ruleset protected. 2017-07-24 21:47:31 +08:00
Huo Yaoyuan
e0b1057b87 Merge branch 'master' into fixes 2017-07-24 20:50:33 +08:00
tgi74000
d0e99f0c95 check removed beatmap being null, check promptdelete beatmap being default 2017-07-24 10:25:33 +02:00
Thomas Müller
e68675f970 Rename EasingTypes to Easing 2017-07-22 20:53:53 +02:00
Dean Herbert
9a33e77d63 Merge branch 'master' into fix-carousel-debounce-race 2017-07-21 17:44:04 +09:00
Dean Herbert
12b6b80d5c Make method to flush filter requests 2017-07-21 17:20:52 +09:00
Dean Herbert
b4dddc98ee Fix selection changing on entering song select
Conditional was backwards, easy fix.
2017-07-21 06:15:44 +09:00
Dean Herbert
fb2f1224b3 Fix carousel filter debounce causing a race condition
Clicking a ruleset button on toolbar would schedule a delayed filter of carousel, which could in turn trigger a beatmap change after pushing a Player. This resolves that by forcing any pending operations to complete.
2017-07-21 05:58:58 +09:00
Thomas Müller
e84d8cc020 Merge branch 'master' into fix-empty-carousel 2017-07-20 21:15:58 +02:00
Thomas Müller
4e33efd41f Merge branch 'master' into fix-empty-carousel 2017-07-20 21:04:45 +02:00
Thomas Müller
518a7c460e Merge branch 'master' into fix-beatmap-select-race 2017-07-20 21:04:40 +02:00
Thomas Müller
e21822cdeb Merge branch 'master' into fix-working-beatmap-double-load 2017-07-20 20:35:31 +02:00
Thomas Müller
01ff7e8f4b Merge branch 'master' into fix-empty-carousel 2017-07-20 20:31:06 +02:00
Dean Herbert
451f92772a Merge branch 'master' into fixes 2017-07-20 19:46:50 +09:00
Dean Herbert
6e0b7b81f8 Switch to correct ruleset when changing beatmap
This is only really noticeable when using the MusicController to change tracks while at song select.
2017-07-20 19:10:20 +09:00
Dean Herbert
3bdd4d7d02 Centralise TrackManager.AddItem logic to avoid duplicate adds 2017-07-20 17:46:33 +09:00
Dean Herbert
67b95926c4 Remove usage of SetExclusive
Also immediately disposes WorkingBeatmaps on ValueChanged.
2017-07-20 16:45:44 +09:00
Dean Herbert
61c665f239 Add required null check 2017-07-20 15:16:07 +09:00
Dean Herbert
a59557f039 Fix selection not being reset correct when changing between rulesets
Carousels filtered to results with no maps visible were not being handled correctly in a few different ways. This covers all those scenarios.
2017-07-20 15:12:20 +09:00
Dean Herbert
c130981184 Fix WorkingBeatmap being loaded twice when using MusicController at SongSelect 2017-07-20 14:06:09 +09:00
Dean Herbert
15eb6954da Fix hitting down and enter at song select causing a hard-crash
Carousel was not aware of the disabled beatmap change state. Also it was being set too late (in an async load) so wasn't useful. It's now pre-emptively set in PlaySongSelect before loading Player.
2017-07-20 11:50:52 +09:00
Dean Herbert
8d727b898f Don't rely on BeatmapSetInfo being present 2017-07-20 09:23:11 +09:00
Dean Herbert
35157ca6b8 Make DefaultBeatmap private get. 2017-07-19 18:09:59 +09:00
Dean Herbert
64ebc01a3b Remove many now unnecessary null-checks 2017-07-19 15:45:23 +09:00
Dean Herbert
8e8767cd37 Give song select a better default background whecn the beatmap's can't be loaded 2017-07-19 15:16:55 +09:00
Dean Herbert
d0dea33faa Make Beatmap (bindable) non-nullable. 2017-07-19 15:16:53 +09:00
Dean Herbert
0846414c5b Simplify state changes 2017-07-19 15:16:51 +09:00
Dean Herbert
f168ee660c Move dummy to BeatmapDatabase 2017-07-19 15:16:43 +09:00
Dean Herbert
df60fc0f0a Stop playing previous beatmap even if new beatmap has no track 2017-07-19 15:16:36 +09:00
Huo Yaoyuan
9cd895c249 Implement Ctrl+Enter in PlaySongSelect. 2017-07-18 15:55:21 +08:00
Dean Herbert
b5035ec245 Merge branch 'master' into songselect-preview-fix 2017-07-18 13:05:03 +09:00
Thomas Müller
22a987f6cc Update test cases to new framework and fix old crashes 2017-07-07 15:05:55 +03:00
EVAST9919
be94163d21 Merge remote-tracking branch 'refs/remotes/ppy/master' into cancel-select-random 2017-06-22 04:28:47 +03:00
MrTheMake
a399b18837 Removed debug line 2017-06-19 00:11:47 +02:00
MrTheMake
3b3cc59471 Fix NullReferenceException 2017-06-18 20:21:24 +02:00
MrTheMake
23d1c89a67 Fix not applying song select preview seek 2017-06-18 20:12:28 +02:00
MrTheMake
06089a74e3 Handle the numpad's Enter in cases where only the normal Enter was handled 2017-06-15 23:06:28 +02:00
EVAST9919
78500eec21 Applied suggested changes 2017-06-05 12:24:28 +03:00
EVAST9919
a42c67ee97 Cancel beatmap random selection 2017-06-01 20:54:42 +03:00
MrTheMake
24f64c8815 More formatting 2017-05-24 02:38:05 +02:00
MrTheMake
67774192dd Formatting fixes 2017-05-24 02:30:32 +02:00
MrTheMake
0616256bd0 CI fix 2017-05-24 02:23:52 +02:00
MrTheMake
09adb23591 Fix scheduled task not being canceled 2017-05-24 02:22:30 +02:00
MrTheMake
7db45cb58f Moved the whole looping assignments inside PlaySongSelect 2017-05-21 17:09:56 +02:00
MrTheMake
48f4879157 Use the track's implemented looping algorithm to loop tracks in the song select screen 2017-05-21 15:57:41 +02:00
MrTheMake
662ea0ec2d Repeat a beatmap's track if it has ended 2017-05-21 14:00:40 +02:00
MrTheMake
306feb177a Fix null pointer reference 2017-05-20 20:18:29 +02:00
MrTheMake
031fddc995 Fix current beatmap track is started again when entering songselect and changing to another difficulty from the same beatmap set. 2017-05-20 19:53:18 +02:00
Dean Herbert
5ae3a7143e Fix audio seeking when entering play mode in certain cases
Resolves #794
2017-05-19 13:23:11 +09:00
Dean Herbert
cab12ee55a Reduce the possibility of recomputing drawables when underlying beatmap hasn't changed 2017-05-17 17:33:16 +09:00
Dean Herbert
efab186384 Update namespaces in line with framework 2017-05-16 12:50:30 +09:00
Huo Yaoyuan
767cfaaac3 Access database recursively. 2017-05-06 15:37:53 +08:00
Huo Yaoyuan
146d57953d Use metadata field of WorkingBeatmap. 2017-05-06 14:57:11 +08:00
Dean Herbert
1e3847c73c Cancel the existing scheduled task when running it ahead of time. 2017-04-29 20:28:56 +09:00
Dean Herbert
2dcb4e9b93 Fix race condition when attempting to start a beatmap during debounce. 2017-04-29 20:12:09 +09:00
Dean Herbert
2ece1cbd07 CI Fixes. 2017-04-28 22:26:51 +09:00
Dean Herbert
a681e3e380 Remove unused method. 2017-04-28 22:17:42 +09:00
Dean Herbert
59cc5ea00a CI Fixes. 2017-04-28 20:50:23 +09:00
Dean Herbert
45729a8881 Add debounce to WorkingBeatmap creation at song select.
Improves perceived performance when quickly moving through carousel.
2017-04-28 20:44:16 +09:00
Dean Herbert
003cf53441 Streamline panel selection event logic.
Was previously firing multiple times where it was completely unnecessary. Also had bidirection firing going on.
2017-04-28 20:43:42 +09:00
Dean Herbert
a4e2f34ee7
Make a RulesetDatabase. 2017-04-17 17:43:48 +09:00
smoogipooo
4a149c4ab8 Better default values + don't set Mode from outside. 2017-04-15 06:14:31 +09:00
smoogipooo
0a1376c2db Remove PlayMode game-wide. 2017-04-15 05:22:41 +09:00
Dean Herbert
8173d01d78
Fix crash on changing play mode too early. 2017-04-05 17:26:45 +09:00
Dean Herbert
7c74951454
Update bindables.
# Conflicts:
#	osu.Desktop.VisualTests/Tests/TestCaseResults.cs
#	osu.Game/Screens/Ranking/ResultModeButton.cs
#	osu.Game/Screens/Ranking/Results.cs
2017-04-04 11:34:13 +09:00
Dean Herbert
fa7fd6efe3
Fix mode selector not invoking a re-filter. 2017-03-29 19:48:13 +09:00
Dean Herbert
f7dc7e9bb9
Update references. 2017-03-28 21:26:20 +09:00
Dean Herbert
8c4fd44a85
Tidy up song select footer and fix depth of mod select vs osu! cookie. 2017-03-23 19:32:58 +09:00
Dean Herbert
54e1b24fe9
Enforce readonly private members where possible. 2017-03-23 13:50:08 +09:00
Seth
4aea06be22 Merge branch 'master' into leaderboards 2017-03-17 18:23:01 -03:00
Dean Herbert
907236e475
Move filtering to BeatmapCarousel (but actual logic is now in FilterCriteria. 2017-03-17 19:54:51 +09:00
Dean Herbert
4b97304603
CarouselContainer -> BeatmapCarousel. 2017-03-17 19:12:54 +09:00
Dean Herbert
dc28f8c79e
Remove all external access to BeatmapGroup. 2017-03-17 19:12:15 +09:00
Dean Herbert
9c664e5b05
Reorganise song select methods to allow for more flexibility. 2017-03-17 11:52:54 +09:00
Dean Herbert
334e389518
Tidy up OsuTabControl and FilterControl. 2017-03-16 16:35:44 +09:00
Dean Herbert
da6b98db10
fixup! Filter doesn't need to be public, nor have a property. 2017-03-16 14:23:48 +09:00
Dean Herbert
269c1a5e5c
Reword some comments. 2017-03-16 14:08:37 +09:00
Dean Herbert
352de22590
Filter doesn't need to be public, nor have a property. 2017-03-16 14:08:29 +09:00
Dean Herbert
15e713899d
Add a left content area to song select. 2017-03-15 14:34:19 +09:00
Kelvin
755fb260db Updated TabControl Usage 2017-03-14 19:52:21 -07:00
Huo Yaoyuan
37ff1f3971 Control footer by virtual property. 2017-03-15 10:10:59 +08:00
Huo Yaoyuan
a8d15e616b Remove parameter of OnSelected. 2017-03-14 22:22:23 +08:00
Huo Yaoyuan
f068f7c4bd No footer in EditSongSelect. 2017-03-14 21:51:26 +08:00
Huo Yaoyuan
c939897a8a Revert "Auto assign hotkeys for BeatmapOptionsButton."
This reverts commit beb0a8ff03.
2017-03-14 21:13:57 +08:00
Huo Yaoyuan
beb0a8ff03 Auto assign hotkeys for BeatmapOptionsButton. 2017-03-14 20:50:43 +08:00
Huo Yaoyuan
35a60a8f7d Use depth to arrange buttons. 2017-03-14 20:19:05 +08:00
Huo Yaoyuan
3871a350f8 Move BeatmapOptions buttons to derived class and simplify. 2017-03-14 19:38:21 +08:00
Huo Yaoyuan
c4e5eac35b Move footer stuff to derived. 2017-03-14 18:38:06 +08:00
Huo Yaoyuan
9a4247f67e Make Footer handles hotkey. 2017-03-14 18:16:04 +08:00
Huo Yaoyuan
c3a0549cdd Move player specific stuff to derived PlaySongSelect. 2017-03-14 16:58:34 +08:00
Huo Yaoyuan
fae6afa9e3 Create basic SongSelect class. 2017-03-14 16:44:35 +08:00