summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorNicolas Pennequin <nicolas.pennequin@free.fr>2007-12-11 00:32:08 +0000
committerNicolas Pennequin <nicolas.pennequin@free.fr>2007-12-11 00:32:08 +0000
commitc16470bf046c62099c7bec08e23254cbf1df3f71 (patch)
tree2011a5ea9464de362b428e57ffa8e4bcdcea3997 /apps
parent16be6567b6dcd66dabf8b1e7f3a84ac358589c16 (diff)
downloadrockbox-c16470bf046c62099c7bec08e23254cbf1df3f71.zip
rockbox-c16470bf046c62099c7bec08e23254cbf1df3f71.tar.gz
rockbox-c16470bf046c62099c7bec08e23254cbf1df3f71.tar.bz2
rockbox-c16470bf046c62099c7bec08e23254cbf1df3f71.tar.xz
A couple fixes:
* The menu was being drawn with the wrong colour if entered while the album name was being faded * Display an error message if no albums have been found (which indicates that the database isn't initialised) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15909 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/pictureflow.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/apps/plugins/pictureflow.c b/apps/plugins/pictureflow.c
index 49c5692..24e6914 100644
--- a/apps/plugins/pictureflow.c
+++ b/apps/plugins/pictureflow.c
@@ -107,6 +107,10 @@ const struct button_mapping *plugin_contexts[]
#define EMPTY_SLIDE CACHE_PREFIX "/emptyslide.pfraw"
+/* Error return values */
+#define ERROR_NO_ALBUMS -1
+#define ERROR_BUFFER_FULL -2
+
/** structs we use */
@@ -400,7 +404,7 @@ inline PFreal fcos(int iangle)
Create an index of all albums from the database.
Also store the album names so we can access them later.
*/
-bool create_album_index(void)
+int create_album_index(void)
{
rb->memset(&tcs, 0, sizeof(struct tagcache_search) );
album_count = 0;
@@ -416,7 +420,7 @@ bool create_album_index(void)
if ( (album[album_count].name_idx + l) > MAX_ALBUMS*AVG_ALBUM_NAME_LENGTH )
/* not enough memory */
- return false;
+ return ERROR_BUFFER_FULL;
rb->strcpy(album_names + album[album_count].name_idx, tcs.result);
album[album_count].seek = tcs.result_seek;
@@ -424,7 +428,8 @@ bool create_album_index(void)
album_count++;
}
rb->tagcache_search_finish(&tcs);
- return true;
+
+ return (album_count > 0) ? 0 : ERROR_NO_ALBUMS;
}
/**
@@ -1478,6 +1483,8 @@ int main_menu(void) {
int selection = 0;
int result;
+ rb->lcd_set_foreground(LCD_RGBPACK(255,255,255));
+
MENUITEM_STRINGLIST(main_menu,"PictureFlow Main Menu",NULL,
"Settings", "Return", "Quit");
@@ -1509,6 +1516,7 @@ int main_menu(void) {
*/
int main(void)
{
+ int ret;
draw_splashscreen();
if ( ! rb->dir_exists( CACHE_PREFIX ) ) {
@@ -1528,9 +1536,13 @@ int main(void)
return PLUGIN_ERROR;
}
- if (!create_album_index()) {
+ ret = create_album_index();
+ if (ret == ERROR_BUFFER_FULL) {
rb->splash(HZ, "Not enough memory for album names");
return PLUGIN_ERROR;
+ } else if (ret == ERROR_NO_ALBUMS) {
+ rb->splash(HZ, "No albums found. Please enable database");
+ return PLUGIN_ERROR;
}
if (!create_albumart_cache(false)) {
@@ -1586,7 +1598,7 @@ int main(void)
int albumtxt_w, albumtxt_h;
int albumtxt_x = 0, albumtxt_y = 0;
int albumtxt_dir = -1;
- int ret, c;
+ int c;
int prev_center_index = -1;
while (true) {