1
0
Fork 0
forked from len0rd/rockbox

Added event handler to register track changes.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6936 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Miika Pekkarinen 2005-06-29 21:36:30 +00:00
parent 7f8cc3f1c6
commit 7d6d122441
2 changed files with 16 additions and 2 deletions

View file

@ -152,7 +152,7 @@ static long fill_bytesleft;
static struct track_info tracks[MAX_TRACK];
/* Pointer to track info structure about current song playing. */
static volatile struct track_info *cur_ti;
static struct track_info *cur_ti;
/* Codec API including function callbacks. */
extern struct codec_api ci;
@ -161,6 +161,9 @@ extern struct codec_api ci;
variable keeps information about whether to go a next/previous track. */
static int new_track;
/* Callback function to call when current track has really changed. */
void (*track_changed_callback)(struct track_info *ti);
/* Configuration */
static int conf_bufferlimit;
static int conf_watermark;
@ -554,10 +557,15 @@ void codec_configure_callback(int setting, void *value)
}
}
void audio_set_track_changed_event(void (*handler)(struct track_info *ti))
{
track_changed_callback = handler;
}
void codec_track_changed(void)
{
track_changed = true;
// queue_post(&audio_queue, AUDIO_TRACK_CHANGED, 0);
queue_post(&audio_queue, AUDIO_TRACK_CHANGED, 0);
}
void yield_codecs(void)
@ -1174,6 +1182,8 @@ void audio_thread(void)
break ;
case AUDIO_TRACK_CHANGED:
if (track_changed_callback)
track_changed_callback(cur_ti);
break ;
case AUDIO_CODEC_DONE:
@ -1549,6 +1559,7 @@ void audio_init(void)
paused = false;
track_changed = false;
current_fd = -1;
track_changed_callback = NULL;
logf("abuf:%0x", PCMBUF_SIZE);
logf("fbuf:%0x", codecbuflen);

View file

@ -60,6 +60,9 @@ struct track_info {
int playlist_offset; /* File location in playlist */
};
/* Functions */
void audio_set_track_changed_event(void (*handler)(struct track_info *ti));
#endif