summaryrefslogtreecommitdiff
path: root/src/base_media_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/base_media_base.h')
-rw-r--r--src/base_media_base.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/base_media_base.h b/src/base_media_base.h
index 7614118b7..15f4372fb 100644
--- a/src/base_media_base.h
+++ b/src/base_media_base.h
@@ -285,11 +285,23 @@ static const uint NUM_SONGS_AVAILABLE = 1 + NUM_SONG_CLASSES * NUM_SONGS_CLASS;
/** Maximum number of songs in the (custom) playlist */
static const uint NUM_SONGS_PLAYLIST = 32;
+enum MusicTrackType {
+ MTT_STANDARDMIDI, ///< Standard MIDI file
+};
+
+/** Metadata about a music track. */
+struct MusicSongInfo {
+ char songname[32]; ///< name of song displayed in UI
+ byte tracknr; ///< track number of song displayed in UI
+ const char *filename; ///< file on disk containing song (when used in MusicSet class, this pointer is owned by MD5File object for the file)
+ MusicTrackType filetype; ///< decoder required for song file
+};
+
/** All data of a music set. */
struct MusicSet : BaseSet<MusicSet, NUM_SONGS_AVAILABLE, false> {
- /** The name of the different songs. */
- char song_name[NUM_SONGS_AVAILABLE][32];
- byte track_nr[NUM_SONGS_AVAILABLE];
+ /** Data about individual songs in set. */
+ MusicSongInfo songinfo[NUM_SONGS_AVAILABLE];
+ /** Number of valid songs in set. */
byte num_available;
bool FillSetDetails(struct IniFile *ini, const char *path, const char *full_filename);