I'm new to this, so bear with me if this is not the right board.
I thought it would be nice to have a shutdown option in the main root menu for my player (sansa e260v1). When I started looking over the source code I noticed there already was code for a shutdown option in the main menu, but it wasn't showing up in my player. (This would be in apps/rootmenu.c.) The problem seems to be that the code for the shutdown option is surrounded by
#ifdef HAVE_LCD_CHARCELLS
...
#endif
and hence isn't being compiled for my player.
I discovered that by commenting out the #ifdef ... #endif and by converting the line
MENUITEM_FUNCTION(do_shutdown_item, 0, ID2P(LANG_SHUTDOWN),
do_shutdown, NULL, NULL, Icon_NOICON);
to
MENUITEM_FUNCTION(do_shutdown_item, 0, "Shutdown",
do_shutdown, NULL, NULL, Icon_NOICON);
I was able to get the source to compile and work on my e200 series player.
My question is: what exactly does having HAVE_LCD_CHARCELLS defined mean? Especially, why would having it defined preclude having a shutdown option in the menu? In other words, why check for HAVE_LCD_CHARCELLS in the first place concerning having a shutdown menu option?
My workaround seems to be working just fine with the exception that the player boots into the settings menu rather than into the main menu on powerup. (Play/Pause gets me to WPS and the bottom button below the scroll wheel gets me back to the main menu.)