Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: RE: Playing a File
From: Hardeep Sidhu (hardeeps_at_pobox.com)
Date: 2003-01-10


Hi Benjamin,

Yes, you should be using playlist to resume a bookmark because the mpeg code
queries the playlist code to determine what to play. IMO, what you should
be saving in your bookmark is _exactly_ the same information that we save
for resume purposes.

From apps/settings.h:
    int resume_index; /* index in playlist (-1 for no active resume) */
    int resume_offset; /* byte offset in mp3 file */
    int resume_seed; /* random seed for playlist shuffle */
    int resume_first_index; /* first index of playlist */
    int queue_resume; /* resume queue file?: 0 = no
                                             1 = resume at queue index
                                             2 = resume at playlist index */
    int queue_resume_index; /* queue index (seek point in queue file) */
    unsigned char resume_file[MAX_PATH+1]; /* playlist name (or dir) */

Then, to resume a bookmark, all you need to do is what is done in
start_resume() (apps/tree.c).

-Hardeep

> -----Original Message-----
> From: owner-rockbox_at_cool.haxx.se [mailto:owner-rockbox_at_cool.haxx.se]On
> Behalf Of Benjamin
> Sent: Thursday, January 09, 2003 1:16 PM
> To: rockbox_at_cool.haxx.se
> Subject: RE: Playing a File
>
>
> Thanks Hardeep,
> Should I be using play_list()? This seems to be more functionality
> then I need since I can provide the playlist/mp3 file. Is there
> a way to bypass this and use mpeg_play() directly?
>
> build_playlist takes a int, but I'm not sure what it is looking for.
> It indicates that it is the start_index, but I'm not sure how it
> all ties together.
>
> This is the information that I am storing in the bookmark file.
> 1. Bookmarked file name (MP3/M3U)
> 2. Index (in the case of a booked mark M3U this would be a 0 based
> index or 0 in the case of bookmarked MP3).
> 3. Offset into the MP3.
>
> With this information, I assume the following:
> 1. Clear out any existing playlists with playlist_clear();
> 2. Call build_playlist() (again, I'm not sure what the passed in
> variable)
> 3. Call mpeg_play(with the above offset).
>
> Does this make sense to do it this way?
>
> Thanks,
> Ben
>
> > Hi Benjamin,
> >
> > If you want to play a track in a directory, you first need to call
> > apps/tree.c:build_playlist(). Secondly, your assumptions about
> play_list()
> > are not quite correct. If you want to play a track in a directory,
> the
> > arguments would be:
> >
> > int play_list(char *dir, // Absolute pathname of directory
> (NOT
> > the mp3 file)
> > char *file, // NULL
> > int start_index, // Index, in directory, of the
> track > you
> > want to play
> > bool shuffled_index, // FALSE (only needed for shuffle
> play)
> > int start_offset, // file offset
> > int random_seed, // 0 (only needed for shuffle play)
> > int first_index, // 0 (index to first track in
> playlist)
> > int queue_resume, // FALSE (only needed for queue
> mode)
> > int queue_resume_index ) // 0 (only needed for queue
> mode)
>
> > Take a look at apps/tree.c:start_resume() to see how play_list()
> is used for
> > both directories and playlist files.
>
> > -Hardeep
>
>
>
>
>
>



Page was last modified "Jan 10 2012" The Rockbox Crew
aaa