WrapRead

A Component for wasabi.player.
By: WHEREamI



WrapRead reads Wrapped mp3's upon play, and expands the playlist to contain all the files contained in the Wrap, displaying the ID3 Tag information from the original files (read only). The user can then select the individual files in the expanded playlist to play them as if a normal mp3. All this occurs without unwrapping the source Wrap.




Currently supported wrap formats:

AlbumWrap
mp3wrap

(More formats can be added by other components.)






See the SourceForge project info page for Downloads, project status, and news.

Much credit must be given to Matteo Trotta, the developer of the mp3wrap and mp3splt projects on which the wrap reading routines in this project are based.





How WrapRead Works:

WrapRead is a component for Wasabi.player. WrapRead is implemented in two main parts. The corecallback uses any available WrapIndexer service to detect Wraps and expand the playlist. The filereader then reads the wrapped files, and ignores the parts of the Wrap file that are not part of the selected original file. The filereader reads the playlist entry generated in the corecallback, which contains the path and filename of the Wrap file, the beginning and end offsets of the original file in the Wrap, and the original filename of the file. The filereader should make the file's ID3 or other meta information available for the metadatabase to read, but otherwise the original filename will be used. When the playlist entry corresponding to a part of the Wrap is played, Wasabi.player will begin playback at the offset noted in the playlist entry and end playback at the end offset.






How to Add a New Wrap Type to WrapRead:

To add functionality to WrapRead, other developers can simply write a new WrapIndexer service that can read the index of the file, and return playstrings of the correct format, which can then be read by WrapRead's FileReader. WrapRead's corecallback will enumerate the available WrapIndexer services, and use the service to read the Wrap's index. It is not necessary that the index even be in the same file with the music data. For instance, it would be possible to have a cuesheet-style Wrap index. The WrapIndexer service does not even necessarily need to return playstrings compatible with WrapRead's own filereader. Another component could potentially use WrapRead's corecallback to find and index files, and have its own filereader or mediaconverter service to read the media data out of the file. Please see svc_wrapindexer.h/cpp in the source for more information on implementing a WrapIndexer service.





Please visit us at:
Wasabidev Logo

SourceForge.net Logo