diff options
| author | Jonathan Gordon <rockbox@jdgordon.info> | 2007-03-12 13:41:52 +0000 |
|---|---|---|
| committer | Jonathan Gordon <rockbox@jdgordon.info> | 2007-03-12 13:41:52 +0000 |
| commit | 6e44209a4c60995b8e6c6736f14d6d88bf906ac5 (patch) | |
| tree | 6a444d6fc3bfd519c046b11f44957b10c42ee7a0 | |
| parent | 6f2bb422c091dfc6d54d912ead6addc9bd431c79 (diff) | |
| download | rockbox-6e44209a4c60995b8e6c6736f14d6d88bf906ac5.zip rockbox-6e44209a4c60995b8e6c6736f14d6d88bf906ac5.tar.gz rockbox-6e44209a4c60995b8e6c6736f14d6d88bf906ac5.tar.bz2 rockbox-6e44209a4c60995b8e6c6736f14d6d88bf906ac5.tar.xz | |
Make the Play / Pause option restart playback if its stopped also
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12738 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/plugin.c | 3 | ||||
| -rw-r--r-- | apps/plugin.h | 5 | ||||
| -rw-r--r-- | apps/plugins/lib/playback_control.c | 11 |
3 files changed, 17 insertions, 2 deletions
diff --git a/apps/plugin.c b/apps/plugin.c index a2d7129..5fc837f 100644 --- a/apps/plugin.c +++ b/apps/plugin.c @@ -484,6 +484,9 @@ static const struct plugin_api rockbox_api = { detect_flashed_ramimage, detect_flashed_romimage, #endif + playlist_resume, + playlist_start, + &global_status, }; int plugin_load(const char* plugin, void* parameter) diff --git a/apps/plugin.h b/apps/plugin.h index c14b06f..e169596 100644 --- a/apps/plugin.h +++ b/apps/plugin.h @@ -110,7 +110,7 @@ #define PLUGIN_MAGIC 0x526F634B /* RocK */ /* increase this every time the api struct changes */ -#define PLUGIN_API_VERSION 47 +#define PLUGIN_API_VERSION 48 /* update this to latest version if a change to the api struct breaks backwards compatibility (and please take the opportunity to sort in any @@ -598,6 +598,9 @@ struct plugin_api { bool (*detect_flashed_ramimage)(void); bool (*detect_flashed_romimage)(void); #endif + int (*playlist_resume)(void); + int (*playlist_start)(int start_index, int offset); + struct system_status *global_status; }; /* plugin header */ diff --git a/apps/plugins/lib/playback_control.c b/apps/plugins/lib/playback_control.c index 27460bb..8a1381a 100644 --- a/apps/plugins/lib/playback_control.c +++ b/apps/plugins/lib/playback_control.c @@ -29,7 +29,16 @@ bool prevtrack(void) bool play(void) { - if (api->audio_status() & AUDIO_STATUS_PAUSE) + int audio_status = api->audio_status(); + if (!audio_status && api->global_status->resume_index != -1) + { + if (api->playlist_resume() != -1) + { + api->playlist_start(api->global_status->resume_index, + api->global_status->resume_offset); + } + } + else if (audio_status & AUDIO_STATUS_PAUSE) api->audio_resume(); else api->audio_pause(); |