32 lines
656 B
C
32 lines
656 B
C
|
// M3U entries parser, with support for subtrack information
|
||
|
|
||
|
// Game_Music_Emu 0.5.2
|
||
|
#ifndef M3U_PLAYLIST_H
|
||
|
#define M3U_PLAYILST_H
|
||
|
|
||
|
#include "blargg_common.h"
|
||
|
|
||
|
struct entry_t
|
||
|
{
|
||
|
unsigned char track; // 1-based
|
||
|
int length; // milliseconds
|
||
|
};
|
||
|
|
||
|
/* Short version of the m3u playlist */
|
||
|
struct M3u_Playlist
|
||
|
{
|
||
|
unsigned char size;
|
||
|
struct entry_t *entries;
|
||
|
};
|
||
|
|
||
|
static inline void M3u_load_data(struct M3u_Playlist* this, void *addr)
|
||
|
{
|
||
|
if( addr == NULL ) return;
|
||
|
/* m3u entries data must be at offset 100,
|
||
|
the first 99 bytes are used by metadata info */
|
||
|
this->size = *(unsigned char *)(addr + 99);
|
||
|
this->entries = (struct entry_t *)(addr+100);
|
||
|
}
|
||
|
|
||
|
#endif
|