mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-14 10:37:38 -04:00
use the list context in credits which has to be defined for every target
(fixes the bug where you cant exit credits on the player) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15118 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
0b0c23ff13
commit
c03002b256
1 changed files with 36 additions and 21 deletions
|
@ -27,9 +27,22 @@ const char* const credits[] = {
|
||||||
#include "credits.raw" /* generated list of names from docs/CREDITS */
|
#include "credits.raw" /* generated list of names from docs/CREDITS */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define STOP_AUTOSCROLL(action) ((ACTION_KBD_ABORT == action) || \
|
bool STOP_AUTOSCROLL(int action)
|
||||||
(ACTION_KBD_UP == action) || \
|
{
|
||||||
(ACTION_KBD_DOWN == action))
|
switch (action)
|
||||||
|
{
|
||||||
|
case ACTION_STD_CANCEL:
|
||||||
|
case ACTION_STD_OK:
|
||||||
|
case ACTION_STD_NEXT:
|
||||||
|
case ACTION_STD_NEXTREPEAT:
|
||||||
|
case ACTION_STD_PREV:
|
||||||
|
case ACTION_STD_PREVREPEAT:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LCD_CHARCELLS
|
#ifdef HAVE_LCD_CHARCELLS
|
||||||
|
|
||||||
|
@ -77,7 +90,7 @@ void roll_credits(void)
|
||||||
rb->lcd_update();
|
rb->lcd_update();
|
||||||
|
|
||||||
/* abort on keypress */
|
/* abort on keypress */
|
||||||
if(ACTION_KBD_ABORT == rb->get_action(CONTEXT_KEYBOARD,HZ/8))
|
if(rb->action_userabort(HZ/8))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (++curr_index >= curr_len)
|
if (++curr_index >= curr_len)
|
||||||
|
@ -98,10 +111,12 @@ int update_rowpos(int action, int cur_pos, int rows_per_screen, int tot_rows)
|
||||||
{
|
{
|
||||||
switch(action)
|
switch(action)
|
||||||
{
|
{
|
||||||
case ACTION_KBD_UP:
|
case ACTION_STD_PREV:
|
||||||
|
case ACTION_STD_PREVREPEAT:
|
||||||
cur_pos--;
|
cur_pos--;
|
||||||
break;
|
break;
|
||||||
case ACTION_KBD_DOWN:
|
case ACTION_STD_NEXT:
|
||||||
|
case ACTION_STD_NEXTREPEAT:
|
||||||
cur_pos++;
|
cur_pos++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -194,7 +209,7 @@ void roll_credits(void)
|
||||||
rb->lcd_update_rect(0, font_h*(i+1), LCD_WIDTH, font_h);
|
rb->lcd_update_rect(0, font_h*(i+1), LCD_WIDTH, font_h);
|
||||||
|
|
||||||
/* exit on abort, switch to manual on up/down */
|
/* exit on abort, switch to manual on up/down */
|
||||||
action = rb->get_action(CONTEXT_KEYBOARD, HZ/ANIM_SPEED);
|
action = rb->get_action(CONTEXT_LIST, HZ/ANIM_SPEED);
|
||||||
if(STOP_AUTOSCROLL(action))
|
if(STOP_AUTOSCROLL(action))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -203,7 +218,7 @@ void roll_credits(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* process user actions (if any) */
|
/* process user actions (if any) */
|
||||||
if(ACTION_KBD_ABORT == action)
|
if(ACTION_STD_CANCEL == action)
|
||||||
return;
|
return;
|
||||||
if(STOP_AUTOSCROLL(action))
|
if(STOP_AUTOSCROLL(action))
|
||||||
manual_scroll = true; /* up/down - abort was catched above */
|
manual_scroll = true; /* up/down - abort was catched above */
|
||||||
|
@ -213,8 +228,8 @@ void roll_credits(void)
|
||||||
j+= i;
|
j+= i;
|
||||||
|
|
||||||
/* pause for a bit if needed */
|
/* pause for a bit if needed */
|
||||||
action = rb->get_action(CONTEXT_KEYBOARD, HZ*PAUSE_TIME);
|
action = rb->get_action(CONTEXT_LIST, HZ*PAUSE_TIME);
|
||||||
if(ACTION_KBD_ABORT == action)
|
if(ACTION_STD_CANCEL == action)
|
||||||
return;
|
return;
|
||||||
if(STOP_AUTOSCROLL(action))
|
if(STOP_AUTOSCROLL(action))
|
||||||
manual_scroll = true;
|
manual_scroll = true;
|
||||||
|
@ -246,7 +261,7 @@ void roll_credits(void)
|
||||||
rb->lcd_update_rect(0, font_h*(i+1), LCD_WIDTH, font_h);
|
rb->lcd_update_rect(0, font_h*(i+1), LCD_WIDTH, font_h);
|
||||||
|
|
||||||
/* exit on keypress, react to scrolling */
|
/* exit on keypress, react to scrolling */
|
||||||
action = rb->get_action(CONTEXT_KEYBOARD, HZ/ANIM_SPEED);
|
action = rb->get_action(CONTEXT_LIST, HZ/ANIM_SPEED);
|
||||||
if(STOP_AUTOSCROLL(action))
|
if(STOP_AUTOSCROLL(action))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -277,7 +292,7 @@ void roll_credits(void)
|
||||||
rb->lcd_update_rect(CREDITS_TARGETPOS, 0, credits_w,font_h);
|
rb->lcd_update_rect(CREDITS_TARGETPOS, 0, credits_w,font_h);
|
||||||
|
|
||||||
/* stop on keypress */
|
/* stop on keypress */
|
||||||
action = rb->get_action(CONTEXT_KEYBOARD, HZ/ANIM_SPEED);
|
action = rb->get_action(CONTEXT_LIST, HZ/ANIM_SPEED);
|
||||||
if(STOP_AUTOSCROLL(action))
|
if(STOP_AUTOSCROLL(action))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -288,7 +303,7 @@ void roll_credits(void)
|
||||||
if(STOP_AUTOSCROLL(action))
|
if(STOP_AUTOSCROLL(action))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
action = rb->get_action(CONTEXT_KEYBOARD, HZ*PAUSE_TIME);
|
action = rb->get_action(CONTEXT_LIST, HZ*PAUSE_TIME);
|
||||||
if(STOP_AUTOSCROLL(action))
|
if(STOP_AUTOSCROLL(action))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -296,7 +311,7 @@ void roll_credits(void)
|
||||||
} /* while(j < numnames) */
|
} /* while(j < numnames) */
|
||||||
|
|
||||||
/* handle the keypress that we intercepted during autoscroll */
|
/* handle the keypress that we intercepted during autoscroll */
|
||||||
if(ACTION_KBD_ABORT == action)
|
if(ACTION_STD_CANCEL == action)
|
||||||
return;
|
return;
|
||||||
if(STOP_AUTOSCROLL(action))
|
if(STOP_AUTOSCROLL(action))
|
||||||
manual_scroll = true;
|
manual_scroll = true;
|
||||||
|
@ -306,7 +321,7 @@ void roll_credits(void)
|
||||||
{
|
{
|
||||||
/* user went into manual scrolling, handle it here */
|
/* user went into manual scrolling, handle it here */
|
||||||
rb->lcd_set_drawmode(DRMODE_SOLID);
|
rb->lcd_set_drawmode(DRMODE_SOLID);
|
||||||
while(ACTION_KBD_ABORT != action)
|
while(ACTION_STD_CANCEL != action)
|
||||||
{
|
{
|
||||||
rb->lcd_clear_display();
|
rb->lcd_clear_display();
|
||||||
rb->snprintf(elapsednames, sizeof(elapsednames),
|
rb->snprintf(elapsednames, sizeof(elapsednames),
|
||||||
|
@ -323,16 +338,16 @@ void roll_credits(void)
|
||||||
rb->lcd_update();
|
rb->lcd_update();
|
||||||
|
|
||||||
/* wait for user action */
|
/* wait for user action */
|
||||||
action = rb->get_action(CONTEXT_KEYBOARD, TIMEOUT_BLOCK);
|
action = rb->get_action(CONTEXT_LIST, TIMEOUT_BLOCK);
|
||||||
if(ACTION_KBD_ABORT == action)
|
if(ACTION_STD_CANCEL == action)
|
||||||
return;
|
return;
|
||||||
j = update_rowpos(action, j, NUM_VISIBLE_LINES, numnames);
|
j = update_rowpos(action, j, NUM_VISIBLE_LINES, numnames);
|
||||||
}
|
}
|
||||||
return; /* exit without animation */
|
return; /* exit without animation */
|
||||||
}
|
}
|
||||||
|
|
||||||
action = rb->get_action(CONTEXT_KEYBOARD, HZ*3);
|
action = rb->get_action(CONTEXT_LIST, HZ*3);
|
||||||
if(ACTION_KBD_ABORT == action)
|
if(ACTION_STD_CANCEL == action)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
offset_dummy = 1;
|
offset_dummy = 1;
|
||||||
|
@ -366,7 +381,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Show the logo for about 3 secs allowing the user to stop */
|
/* Show the logo for about 3 secs allowing the user to stop */
|
||||||
if(ACTION_KBD_ABORT != rb->get_action(CONTEXT_KEYBOARD,3*HZ))
|
if(!rb->action_userabort(3*HZ))
|
||||||
roll_credits();
|
roll_credits();
|
||||||
|
|
||||||
/* Turn on backlight timeout (revert to settings) */
|
/* Turn on backlight timeout (revert to settings) */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue