forked from len0rd/rockbox
Added iriver remote keys support to the option selection in the menus, corrected a silly c'n'p error
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7750 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
c34d04618a
commit
80c0f99a1a
3 changed files with 46 additions and 9 deletions
|
@ -42,7 +42,7 @@ void gui_select_init_numeric(struct gui_select * select,
|
||||||
select->validated=false;
|
select->validated=false;
|
||||||
select->title=title;
|
select->title=title;
|
||||||
select->min_value=min_value;
|
select->min_value=min_value;
|
||||||
select->max_value=max_value;
|
select->max_value=max_value+1;
|
||||||
select->option=init_value;
|
select->option=init_value;
|
||||||
select->step=step;
|
select->step=step;
|
||||||
select->extra_string=unit;
|
select->extra_string=unit;
|
||||||
|
@ -66,19 +66,27 @@ void gui_select_init_items(struct gui_select * select,
|
||||||
select->formatter=NULL;
|
select->formatter=NULL;
|
||||||
select->items=items;
|
select->items=items;
|
||||||
}
|
}
|
||||||
//FIXME: si step>1, mettre d'abord au plus grand, ensuite passerau plus petit
|
|
||||||
void gui_select_next(struct gui_select * select)
|
void gui_select_next(struct gui_select * select)
|
||||||
{
|
{
|
||||||
select->option+=select->step;
|
if(select->option + select->step >= select->max_value)
|
||||||
if(select->option >= select->max_value)
|
if(select->option==select->max_value-1)
|
||||||
select->option=select->min_value;
|
select->option=select->min_value;
|
||||||
|
else
|
||||||
|
select->option=select->max_value-1;
|
||||||
|
else
|
||||||
|
select->option+=select->step;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gui_select_prev(struct gui_select * select)
|
void gui_select_prev(struct gui_select * select)
|
||||||
{
|
{
|
||||||
select->option-=select->step;
|
if(select->option - select->step < select->min_value)
|
||||||
if(select->option < select->min_value)
|
if(select->option==select->min_value)
|
||||||
select->option=select->max_value-1;
|
select->option=select->max_value-1;
|
||||||
|
else
|
||||||
|
select->option=select->min_value;
|
||||||
|
else
|
||||||
|
select->option-=select->step;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gui_select_draw(struct gui_select * select, struct screen * display)
|
void gui_select_draw(struct gui_select * select, struct screen * display)
|
||||||
|
@ -119,22 +127,44 @@ bool gui_syncselect_do_button(struct gui_select * select, int button)
|
||||||
{
|
{
|
||||||
case SELECT_INC :
|
case SELECT_INC :
|
||||||
case SELECT_INC | BUTTON_REPEAT :
|
case SELECT_INC | BUTTON_REPEAT :
|
||||||
|
#ifdef SELECT_RC_INC
|
||||||
|
case SELECT_RC_INC :
|
||||||
|
case SELECT_RC_INC | BUTTON_REPEAT :
|
||||||
|
#endif
|
||||||
gui_select_next(select);
|
gui_select_next(select);
|
||||||
moved=true;
|
moved=true;
|
||||||
break;
|
break;
|
||||||
case SELECT_DEC :
|
case SELECT_DEC :
|
||||||
case SELECT_DEC | BUTTON_REPEAT :
|
case SELECT_DEC | BUTTON_REPEAT :
|
||||||
|
#ifdef SELECT_RC_DEC
|
||||||
|
case SELECT_RC_DEC :
|
||||||
|
case SELECT_RC_DEC | BUTTON_REPEAT :
|
||||||
|
#endif
|
||||||
gui_select_prev(select);
|
gui_select_prev(select);
|
||||||
moved=true;
|
moved=true;
|
||||||
break;
|
break;
|
||||||
case SELECT_OK :
|
case SELECT_OK :
|
||||||
|
#ifdef SELECT_RC_OK
|
||||||
|
case SELECT_RC_OK :
|
||||||
|
#endif
|
||||||
|
#ifdef SELECT_RC_OK2
|
||||||
|
case SELECT_RC_OK2 :
|
||||||
|
#endif
|
||||||
#ifdef SELECT_OK2
|
#ifdef SELECT_OK2
|
||||||
case SELECT_OK2 :
|
case SELECT_OK2 :
|
||||||
#endif
|
#endif
|
||||||
gui_select_validate(select);
|
gui_select_validate(select);
|
||||||
break;
|
break;
|
||||||
case SELECT_CANCEL :
|
case SELECT_CANCEL :
|
||||||
|
#ifdef SELECT_CANCEL2
|
||||||
case SELECT_CANCEL2 :
|
case SELECT_CANCEL2 :
|
||||||
|
#endif
|
||||||
|
#ifdef SELECT_RC_CANCEL
|
||||||
|
case SELECT_RC_CANCEL :
|
||||||
|
#endif
|
||||||
|
#ifdef SELECT_RC_CANCEL2
|
||||||
|
case SELECT_RC_CANCEL2 :
|
||||||
|
#endif
|
||||||
gui_select_cancel(select);
|
gui_select_cancel(select);
|
||||||
gui_syncselect_draw(select);
|
gui_syncselect_draw(select);
|
||||||
sleep(HZ/2);
|
sleep(HZ/2);
|
||||||
|
|
|
@ -32,6 +32,13 @@
|
||||||
#define SELECT_CANCEL BUTTON_OFF
|
#define SELECT_CANCEL BUTTON_OFF
|
||||||
#define SELECT_CANCEL2 BUTTON_MODE
|
#define SELECT_CANCEL2 BUTTON_MODE
|
||||||
|
|
||||||
|
#define SELECT_RC_INC BUTTON_RC_FF
|
||||||
|
#define SELECT_RC_DEC BUTTON_RC_REW
|
||||||
|
#define SELECT_RC_OK BUTTON_RC_ON
|
||||||
|
#define SELECT_RC_OK2 BUTTON_RC_MENU
|
||||||
|
#define SELECT_RC_CANCEL BUTTON_RC_STOP
|
||||||
|
#define SELECT_RC_CANCEL2 BUTTON_RC_MODE
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == RECORDER_PAD
|
#elif CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define SELECT_INC BUTTON_UP
|
#define SELECT_INC BUTTON_UP
|
||||||
#define SELECT_DEC BUTTON_DOWN
|
#define SELECT_DEC BUTTON_DOWN
|
||||||
|
|
|
@ -1401,9 +1401,9 @@ bool set_int(const char* string,
|
||||||
if(gui_syncselect_do_button(&select, button))
|
if(gui_syncselect_do_button(&select, button))
|
||||||
{
|
{
|
||||||
*variable=gui_select_get_selected(&select);
|
*variable=gui_select_get_selected(&select);
|
||||||
|
gui_syncselect_draw(&select);
|
||||||
if (global_settings.talk_menu)
|
if (global_settings.talk_menu)
|
||||||
{
|
{
|
||||||
gui_syncselect_draw(&select);
|
|
||||||
if (voice_unit < UNIT_LAST)
|
if (voice_unit < UNIT_LAST)
|
||||||
{ /* use the available unit definition */
|
{ /* use the available unit definition */
|
||||||
talk_value(*variable, voice_unit, false);
|
talk_value(*variable, voice_unit, false);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue