Refactor Song* classes and related items
Closed this issue · 0 comments
maxton commented
In order to allow for different formats (i.e., loose files as well as .zip content files), there needs to be loose coupling between Song and its interface.
- Create ISong with Song's public interface
- Move Song to ZipSong
- Create FolderSong for extracted files
- Change SongMeta and the Library to refer to songs by their filename/path in addition to their GUID
- Create a SongLoader static factory class that will return an ISong for a given SongMeta