Add a shortcut type 'shutdown' which will turn off the player
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31157 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
a55982d130
commit
565191ad50
3 changed files with 22 additions and 0 deletions
|
@ -51,6 +51,7 @@ static const char * const type_strings[SHORTCUT_TYPE_COUNT] = {
|
|||
[SHORTCUT_BROWSER] = "browse",
|
||||
[SHORTCUT_PLAYLISTMENU] = "playlist menu",
|
||||
[SHORTCUT_SEPARATOR] = "separator",
|
||||
[SHORTCUT_SHUTDOWN] = "shutdown",
|
||||
};
|
||||
|
||||
struct shortcut {
|
||||
|
@ -138,6 +139,7 @@ static bool verify_shortcut(struct shortcut* sc)
|
|||
return sc->u.setting != NULL;
|
||||
case SHORTCUT_DEBUGITEM:
|
||||
case SHORTCUT_SEPARATOR:
|
||||
case SHORTCUT_SHUTDOWN:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -258,6 +260,7 @@ int readline_cb(int n, char *buf, void *parameters)
|
|||
sc->u.setting = find_setting_by_cfgname(value, NULL);
|
||||
break;
|
||||
case SHORTCUT_SEPARATOR:
|
||||
case SHORTCUT_SHUTDOWN:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -310,6 +313,11 @@ static const char * shortcut_menu_get_name(int selected_item, void * data,
|
|||
return sc->name[0] ? sc->name : P2STR(ID2P(sc->u.setting->lang_id));
|
||||
else if (sc->type == SHORTCUT_SEPARATOR)
|
||||
return sc->name;
|
||||
else if (sc->type == SHORTCUT_SHUTDOWN && sc->name[0] == '\0')
|
||||
{
|
||||
/* No translation support as only soft_shutdown has LANG_SHUTDOWN defined */
|
||||
return type_strings[SHORTCUT_SHUTDOWN];
|
||||
}
|
||||
return sc->name[0] ? sc->name : sc->u.path;
|
||||
}
|
||||
|
||||
|
@ -341,6 +349,8 @@ static enum themable_icons shortcut_menu_get_icon(int selected_item, void * data
|
|||
return Icon_Menu_functioncall;
|
||||
case SHORTCUT_PLAYLISTMENU:
|
||||
return Icon_Playlist;
|
||||
case SHORTCUT_SHUTDOWN:
|
||||
return Icon_System_menu;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -413,6 +423,14 @@ int do_shortcut_menu(void *ignored)
|
|||
case SHORTCUT_DEBUGITEM:
|
||||
run_debug_screen(sc->u.path);
|
||||
break;
|
||||
case SHORTCUT_SHUTDOWN:
|
||||
#if CONFIG_CHARGING
|
||||
if (charger_inserted())
|
||||
charging_splash();
|
||||
else
|
||||
#endif
|
||||
sys_poweroff();
|
||||
break;
|
||||
case SHORTCUT_UNDEFINED:
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -32,6 +32,7 @@ enum shortcut_type {
|
|||
SHORTCUT_BROWSER,
|
||||
SHORTCUT_PLAYLISTMENU,
|
||||
SHORTCUT_SEPARATOR,
|
||||
SHORTCUT_SHUTDOWN,
|
||||
|
||||
SHORTCUT_TYPE_COUNT
|
||||
};
|
||||
|
|
|
@ -280,6 +280,7 @@ settings. With a shortcut,
|
|||
\item A setting can be configured (any which can be added to the
|
||||
\setting{Quick Screen})
|
||||
\item A debug menu item can be displayed (useful for developers mostly)
|
||||
\item A shortcut to shutdown the player
|
||||
\end{itemize}
|
||||
|
||||
\note{Shortcuts into the database are not possible}
|
||||
|
@ -309,6 +310,8 @@ Available types are:
|
|||
\item[debug] \config{data} is the name of the debug menu item to display
|
||||
\item[separator] \config{data} is ignored; \config{name} can be used to display text,
|
||||
or left blank to make the list more accessible with visual gaps
|
||||
\item[shutdown] \config{data} is ignored; \config{name} can be used to display text,
|
||||
Causes the player to turn off.
|
||||
\end{description}
|
||||
|
||||
If the name/icon items are not specified, a sensible default will be used.
|
||||
|
|
Loading…
Reference in a new issue