maxton/Jam.NET

Refactor Song* classes and related items

Closed this issue · 0 comments

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