1
0
Fork 0
forked from len0rd/rockbox

update to the api to allow fetching of currently playing id3 struct. Adding the favorites plugin.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3854 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jerome Kuptz 2003-07-20 21:29:16 +00:00
parent cb2caf7e0d
commit c7d42bbbd7
3 changed files with 57 additions and 2 deletions

51
apps/plugins/favorites.c Normal file
View file

@ -0,0 +1,51 @@
#include "plugin.h"
#define FAVORITES_FILE "/favorites.m3u"
static struct plugin_api* rb;
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
{
struct mp3entry* id3;
char track_path[MAX_PATH+1];
int fd, seek, result, len;
/* this macro should be called as the first thing you do in the plugin.
it test that the api version and model the plugin was compiled for
matches the machine it is running on */
TEST_PLUGIN_API(api);
/* if you don't use the parameter, you can do like
this to avoid the compiler warning about it */
(void)parameter;
rb = api;
id3 = rb->mpeg_current_track();
if (!id3)
return PLUGIN_ERROR;
fd = rb->open(FAVORITES_FILE, O_WRONLY);
// creat the file if it does not return on open.
if (fd < 0)
fd = rb->creat(FAVORITES_FILE, 0);
if (fd > 0) {
rb->strcpy(track_path, id3->path);
len = rb->strlen(track_path);
// seek to the end of file
seek = rb->lseek(fd, 0, SEEK_END);
// append the current mp3 path
track_path[len] = '\n';
result = rb->write(fd, track_path, len + 1);
track_path[len] = '\0';
rb->close(fd);
}
rb->splash(HZ*2, 0, true, "Saved Favorite");
return PLUGIN_OK;
}