FS#9051 - remove LCD margins... use viewports if you need them...

NOTE to WPS people....
%m has been removed, but (i think) because of the other %m tags it wont fail if you try loading a wps with %m|..|, it will just be ignored.
Also note that if the statusbar is enabled the default viewport is 8 pixels shorter than when its not, i.e (0,0) is really (0,8) if the statusbar is shown... I dont think this will be a major issue because almost no WPS show the bar and use bitmaps... text only WPS shouldnt be affected.

Please report problem screens in http://forums.rockbox.org/index.php?topic=17358.0


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17763 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jonathan Gordon 2008-06-23 13:20:35 +00:00
parent c1b8df05e1
commit bdbdb97f19
38 changed files with 145 additions and 418 deletions

View file

@ -226,7 +226,6 @@ static bool dbg_audio_thread(void)
char buf[32]; char buf[32];
struct audio_debug d; struct audio_debug d;
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
while(1) while(1)
@ -299,7 +298,6 @@ static bool dbg_buffering_thread(void)
tick_add_task(dbg_audio_task); tick_add_task(dbg_audio_task);
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
while(!done) while(!done)
{ {
@ -521,7 +519,6 @@ static bool dbg_hw_info(void)
system_memory_guard(oldmode); /* re-enable memory guard */ system_memory_guard(oldmode); /* re-enable memory guard */
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
lcd_clear_display(); lcd_clear_display();
@ -572,7 +569,6 @@ static bool dbg_hw_info(void)
system_memory_guard(oldmode); /* re-enable memory guard */ system_memory_guard(oldmode); /* re-enable memory guard */
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
lcd_clear_display(); lcd_clear_display();
@ -623,7 +619,6 @@ static bool dbg_hw_info(void)
(PP_VER1 >> 24) & 0xff, (PP_VER1 >> 16) & 0xff, (PP_VER1 >> 24) & 0xff, (PP_VER1 >> 16) & 0xff,
(PP_VER1 >> 8) & 0xff, (PP_VER1) & 0xff, '\0' }; (PP_VER1 >> 8) & 0xff, (PP_VER1) & 0xff, '\0' };
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
lcd_clear_display(); lcd_clear_display();
@ -660,7 +655,6 @@ static bool dbg_hw_info(void)
(PP_VER1 >> 8) & 0xff, PP_VER1 & 0xff, '\0' }; (PP_VER1 >> 8) & 0xff, PP_VER1 & 0xff, '\0' };
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
lcd_clear_display(); lcd_clear_display();
@ -823,7 +817,6 @@ static bool dbg_spdif(void)
int spdif_source = spdif_get_output_source(&spdif_src_on); int spdif_source = spdif_get_output_source(&spdif_src_on);
spdif_set_output_source(AUDIO_SRC_SPDIF IF_SPDIF_POWER_(, true)); spdif_set_output_source(AUDIO_SRC_SPDIF IF_SPDIF_POWER_(, true));
lcd_setmargins(0, 0);
lcd_clear_display(); lcd_clear_display();
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
@ -1033,7 +1026,6 @@ bool dbg_ports(void)
int adc_battery_voltage, adc_battery_level; int adc_battery_voltage, adc_battery_level;
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
lcd_setmargins(0, 0);
lcd_clear_display(); lcd_clear_display();
while(1) while(1)
@ -1075,7 +1067,6 @@ bool dbg_ports(void)
char buf[128]; char buf[128];
int line; int line;
lcd_setmargins(0, 0);
lcd_clear_display(); lcd_clear_display();
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
@ -1151,7 +1142,6 @@ bool dbg_ports(void)
char buf[128]; char buf[128];
int line; int line;
lcd_setmargins(0, 0);
lcd_clear_display(); lcd_clear_display();
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
@ -1248,7 +1238,6 @@ bool dbg_ports(void)
char buf[128]; char buf[128];
int line; int line;
lcd_setmargins(0, 0);
lcd_clear_display(); lcd_clear_display();
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
@ -1374,7 +1363,6 @@ static bool dbg_pcf(void)
int line; int line;
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
#endif #endif
lcd_clear_display(); lcd_clear_display();
@ -1429,7 +1417,6 @@ static bool dbg_cpufreq(void)
int button; int button;
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
#endif #endif
lcd_clear_display(); lcd_clear_display();
@ -1559,7 +1546,6 @@ static bool view_battery(void)
unsigned short maxv, minv; unsigned short maxv, minv;
char buf[32]; char buf[32];
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
while(1) while(1)
@ -2316,7 +2302,6 @@ static bool cpu_boost_log(void)
int lines = LCD_HEIGHT/SYSFONT_HEIGHT; int lines = LCD_HEIGHT/SYSFONT_HEIGHT;
char *str; char *str;
bool done; bool done;
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
str = cpu_boost_log_getlog_first(); str = cpu_boost_log_getlog_first();
while (i < count) while (i < count)
@ -2369,7 +2354,6 @@ static bool dbg_scrollwheel(void)
char buf[64]; char buf[64];
unsigned int speed; unsigned int speed;
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
while (1) while (1)

View file

@ -345,7 +345,6 @@ bool gui_wps_display(void)
/* Update the values in the first (default) viewport - in case the user /* Update the values in the first (default) viewport - in case the user
has modified the statusbar or colour settings */ has modified the statusbar or colour settings */
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
gui_wps[i].data->viewports[0].vp.ymargin = gui_wps[i].display->getymargin();
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
if (gui_wps[i].display->depth > 1) if (gui_wps[i].display->depth > 1)
{ {
@ -1408,14 +1407,6 @@ static char *get_token_value(struct gui_wps *gwps,
else else
return NULL; return NULL;
#endif #endif
#ifdef HAVE_LCD_BITMAP
case WPS_TOKEN_LEFTMARGIN:
gwps->display->setmargins(token->value.i,
gwps->display->getymargin());
return NULL;
#endif
default: default:
return NULL; return NULL;
} }
@ -1529,11 +1520,6 @@ static bool get_line(struct gui_wps *gwps,
align->center = NULL; align->center = NULL;
align->right = NULL; align->right = NULL;
#ifdef HAVE_LCD_BITMAP
/* Reset margins - only bitmap targets modify them */
gwps->display->setmargins(0, gwps->display->getymargin());
#endif
/* Process all tokens of the desired subline */ /* Process all tokens of the desired subline */
last_token_idx = wps_last_token_index(data, line, subline); last_token_idx = wps_last_token_index(data, line, subline);
for (i = wps_first_token_index(data, line, subline); for (i = wps_first_token_index(data, line, subline);
@ -1800,7 +1786,7 @@ static void write_line(struct screen *display,
&center_width, &string_height); &center_width, &string_height);
} }
left_xpos = display->getxmargin(); left_xpos = 0;
right_xpos = (display->getwidth() - right_width); right_xpos = (display->getwidth() - right_width);
center_xpos = (display->getwidth() + left_xpos - center_width) / 2; center_xpos = (display->getwidth() + left_xpos - center_width) / 2;
@ -1885,7 +1871,7 @@ static void write_line(struct screen *display,
right_width = 0; right_width = 0;
} }
ypos = (line * string_height) + display->getymargin(); ypos = (line * string_height);
if (scroll && ((left_width > scroll_width) || if (scroll && ((left_width > scroll_width) ||
@ -1968,7 +1954,8 @@ bool gui_wps_refresh(struct gui_wps *gwps,
/* reset to first subline if refresh all flag is set */ /* reset to first subline if refresh all flag is set */
if (refresh_mode == WPS_REFRESH_ALL) if (refresh_mode == WPS_REFRESH_ALL)
{ {
display->clear_display(); display->set_viewport(&data->viewports[0].vp);
display->clear_viewport();
for (i = 0; i <= data->num_lines; i++) for (i = 0; i <= data->num_lines; i++)
{ {
@ -2063,7 +2050,7 @@ bool gui_wps_refresh(struct gui_wps *gwps,
update_line = false; update_line = false;
int h = font_get(data->viewports[v].vp.font)->height; int h = font_get(data->viewports[v].vp.font)->height;
int peak_meter_y = display->getymargin() + (line - data->viewports[v].first_line)* h; int peak_meter_y = (line - data->viewports[v].first_line)* h;
/* The user might decide to have the peak meter in the last /* The user might decide to have the peak meter in the last
line so that it is only displayed if no status bar is line so that it is only displayed if no status bar is

View file

@ -77,19 +77,6 @@ static void gui_wps_set_disp(struct gui_wps *gui_wps, struct screen *display);
/* connects a wps with a statusbar*/ /* connects a wps with a statusbar*/
static void gui_wps_set_statusbar(struct gui_wps *gui_wps, struct gui_statusbar *statusbar); static void gui_wps_set_statusbar(struct gui_wps *gui_wps, struct gui_statusbar *statusbar);
#ifdef HAVE_LCD_BITMAP
static void gui_wps_set_margin(struct gui_wps *gwps)
{
int offset = 0;
struct wps_data *data = gwps->data;
if(data->wps_sb_tag && data->show_sb_on_wps)
offset = STATUSBAR_HEIGHT;
else if ( global_settings.statusbar && !data->wps_sb_tag)
offset = STATUSBAR_HEIGHT;
gwps->display->setmargins(0, offset);
}
#endif
static void prev_track(unsigned skip_thresh) static void prev_track(unsigned skip_thresh)
{ {
if (!wps_state.id3 || (wps_state.id3->elapsed < skip_thresh*1000)) { if (!wps_state.id3 || (wps_state.id3->elapsed < skip_thresh*1000)) {
@ -152,10 +139,6 @@ long gui_wps_show(void)
status_set_audio(true); status_set_audio(true);
status_set_param(false); status_set_param(false);
#else #else
FOR_NB_SCREENS(i)
{
gui_wps_set_margin(&gui_wps[i]);
}
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
show_wps_backdrop(); show_wps_backdrop();
#endif /* LCD_DEPTH > 1 */ #endif /* LCD_DEPTH > 1 */
@ -298,12 +281,6 @@ long gui_wps_show(void)
#endif #endif
#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
show_remote_wps_backdrop(); show_remote_wps_backdrop();
#endif
#ifdef HAVE_LCD_BITMAP
FOR_NB_SCREENS(i)
{
gui_wps_set_margin(&gui_wps[i]);
}
#endif #endif
restore = true; restore = true;
break; break;
@ -557,12 +534,6 @@ long gui_wps_show(void)
#endif #endif
#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
show_remote_wps_backdrop(); show_remote_wps_backdrop();
#endif
#ifdef HAVE_LCD_BITMAP
FOR_NB_SCREENS(i)
{
gui_wps_set_margin(&gui_wps[i]);
}
#endif #endif
restore = true; restore = true;
break; break;
@ -579,12 +550,6 @@ long gui_wps_show(void)
#endif #endif
if (quick_screen_f3(BUTTON_F3)) if (quick_screen_f3(BUTTON_F3))
return SYS_USB_CONNECTED; return SYS_USB_CONNECTED;
#ifdef HAVE_LCD_BITMAP
FOR_NB_SCREENS(i)
{
gui_wps_set_margin(&gui_wps[i]);
}
#endif
restore = true; restore = true;
break; break;
#endif /* BUTTON_F3 */ #endif /* BUTTON_F3 */
@ -642,12 +607,6 @@ long gui_wps_show(void)
#endif #endif
#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
show_remote_wps_backdrop(); show_remote_wps_backdrop();
#endif
#ifdef HAVE_LCD_BITMAP
FOR_NB_SCREENS(i)
{
gui_wps_set_margin(&gui_wps[i]);
}
#endif #endif
restore = true; restore = true;
break; break;
@ -812,6 +771,31 @@ void gui_sync_wps_screen_init(void)
FOR_NB_SCREENS(i) FOR_NB_SCREENS(i)
gui_wps_set_disp(&gui_wps[i], &screens[i]); gui_wps_set_disp(&gui_wps[i], &screens[i]);
} }
#ifdef HAVE_LCD_BITMAP
static void statusbar_toggle_handler(void *data)
{
(void)data;
int i;
bool draw = global_settings.statusbar;
FOR_NB_SCREENS(i)
{
struct wps_viewport *vp = &gui_wps[i].data->viewports[0];
if (gui_wps[i].data->wps_sb_tag)
draw = gui_wps[i].data->show_sb_on_wps;
if (!global_settings.statusbar && !draw)
{
vp->vp.y = 0;
vp->vp.height = screens[i].height;
}
else
{
vp->vp.y = STATUSBAR_HEIGHT;
vp->vp.height = screens[i].height - STATUSBAR_HEIGHT;
}
}
}
#endif
void gui_sync_wps_init(void) void gui_sync_wps_init(void)
{ {
@ -826,6 +810,9 @@ void gui_sync_wps_init(void)
gui_wps_set_data(&gui_wps[i], &wps_datas[i]); gui_wps_set_data(&gui_wps[i], &wps_datas[i]);
gui_wps_set_statusbar(&gui_wps[i], &statusbars.statusbars[i]); gui_wps_set_statusbar(&gui_wps[i], &statusbars.statusbars[i]);
} }
#ifdef HAVE_LCD_BITMAP
add_event(STATUSBAR_TOGGLE_EVENT, false, statusbar_toggle_handler);
#endif
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
unload_wps_backdrop(); unload_wps_backdrop();
#endif #endif

View file

@ -136,7 +136,6 @@ enum wps_token_type {
WPS_TOKEN_ALIGN_LEFT, WPS_TOKEN_ALIGN_LEFT,
WPS_TOKEN_ALIGN_CENTER, WPS_TOKEN_ALIGN_CENTER,
WPS_TOKEN_ALIGN_RIGHT, WPS_TOKEN_ALIGN_RIGHT,
WPS_TOKEN_LEFTMARGIN,
/* Sublines */ /* Sublines */
WPS_TOKEN_SUBLINE_TIMEOUT, WPS_TOKEN_SUBLINE_TIMEOUT,

View file

@ -103,7 +103,7 @@ void screen_put_icon_with_offset(struct screen * display,
int screen = display->screen_type; int screen = display->screen_type;
display->getstringsize((unsigned char *)"M", &width, &height); display->getstringsize((unsigned char *)"M", &width, &height);
xpos = x*ICON_WIDTH(screen) + off_x; xpos = x*ICON_WIDTH(screen) + off_x;
ypos = y*height + display->getymargin() + off_y; ypos = y*height + off_y;
if ( height > ICON_HEIGHT(screen) )/* center the cursor */ if ( height > ICON_HEIGHT(screen) )/* center the cursor */
ypos += (height - ICON_HEIGHT(screen)) / 2; ypos += (height - ICON_HEIGHT(screen)) / 2;

View file

@ -22,11 +22,16 @@
#include "status.h" #include "status.h"
#include "screen_access.h" #include "screen_access.h"
#include "events.h"
#define STATUSBAR_X_POS 0 #define STATUSBAR_X_POS 0
#define STATUSBAR_Y_POS 0 /* MUST be a multiple of 8 */ #define STATUSBAR_Y_POS 0 /* MUST be a multiple of 8 */
#define STATUSBAR_HEIGHT 8 #define STATUSBAR_HEIGHT 8
/* possibly a horrible misuse of the event system.
This is triggered when the statusbar setting changes */
#define STATUSBAR_TOGGLE_EVENT (EVENT_CLASS_GUI|1)
struct status_info { struct status_info {
int battlevel; int battlevel;
int batt_charge_step; int batt_charge_step;

View file

@ -45,8 +45,6 @@ int viewport_get_nb_lines(struct viewport *vp)
void viewport_set_defaults(struct viewport *vp, enum screen_type screen) void viewport_set_defaults(struct viewport *vp, enum screen_type screen)
{ {
vp->xmargin = 0;
vp->ymargin = 0;
vp->x = 0; vp->x = 0;
vp->width = screens[screen].width; vp->width = screens[screen].width;

View file

@ -79,11 +79,6 @@ static char *get_token_desc(struct wps_token *token, struct wps_data *data,
case WPS_TOKEN_ALIGN_RIGHT: case WPS_TOKEN_ALIGN_RIGHT:
snprintf(buf, bufsize, "align right"); snprintf(buf, bufsize, "align right");
break; break;
case WPS_TOKEN_LEFTMARGIN:
snprintf(buf, bufsize, "left margin, value: %d",
token->value.i);
break;
#endif #endif
case WPS_TOKEN_SUBLINE_TIMEOUT: case WPS_TOKEN_SUBLINE_TIMEOUT:

View file

@ -133,8 +133,6 @@ static int parse_viewport_display(const char *wps_bufptr,
struct wps_token *token, struct wps_data *wps_data); struct wps_token *token, struct wps_data *wps_data);
static int parse_viewport(const char *wps_bufptr, static int parse_viewport(const char *wps_bufptr,
struct wps_token *token, struct wps_data *wps_data); struct wps_token *token, struct wps_data *wps_data);
static int parse_leftmargin(const char *wps_bufptr,
struct wps_token *token, struct wps_data *wps_data);
static int parse_statusbar_enable(const char *wps_bufptr, static int parse_statusbar_enable(const char *wps_bufptr,
struct wps_token *token, struct wps_data *wps_data); struct wps_token *token, struct wps_data *wps_data);
static int parse_statusbar_disable(const char *wps_bufptr, static int parse_statusbar_disable(const char *wps_bufptr,
@ -272,10 +270,6 @@ static const struct wps_tag all_tags[] = {
{ WPS_TOKEN_REPEAT_MODE, "mm", WPS_REFRESH_DYNAMIC, NULL }, { WPS_TOKEN_REPEAT_MODE, "mm", WPS_REFRESH_DYNAMIC, NULL },
{ WPS_TOKEN_PLAYBACK_STATUS, "mp", WPS_REFRESH_DYNAMIC, NULL }, { WPS_TOKEN_PLAYBACK_STATUS, "mp", WPS_REFRESH_DYNAMIC, NULL },
#ifdef HAVE_LCD_BITMAP
{ WPS_TOKEN_LEFTMARGIN, "m", 0, parse_leftmargin },
#endif
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
{ WPS_TOKEN_PEAKMETER, "pm", WPS_REFRESH_PEAK_METER, NULL }, { WPS_TOKEN_PEAKMETER, "pm", WPS_REFRESH_PEAK_METER, NULL },
#else #else
@ -368,6 +362,11 @@ static int parse_statusbar_enable(const char *wps_bufptr,
(void)token; /* Kill warnings */ (void)token; /* Kill warnings */
wps_data->wps_sb_tag = true; wps_data->wps_sb_tag = true;
wps_data->show_sb_on_wps = true; wps_data->show_sb_on_wps = true;
if (wps_data->viewports[0].vp.y == 0)
{
wps_data->viewports[0].vp.y = STATUSBAR_HEIGHT;
wps_data->viewports[0].vp.height -= STATUSBAR_HEIGHT;
}
return skip_end_of_line(wps_bufptr); return skip_end_of_line(wps_bufptr);
} }
@ -378,6 +377,11 @@ static int parse_statusbar_disable(const char *wps_bufptr,
(void)token; /* Kill warnings */ (void)token; /* Kill warnings */
wps_data->wps_sb_tag = true; wps_data->wps_sb_tag = true;
wps_data->show_sb_on_wps = false; wps_data->show_sb_on_wps = false;
if (wps_data->viewports[0].vp.y == STATUSBAR_HEIGHT)
{
wps_data->viewports[0].vp.y = 0;
wps_data->viewports[0].vp.height += STATUSBAR_HEIGHT;
}
return skip_end_of_line(wps_bufptr); return skip_end_of_line(wps_bufptr);
} }
@ -616,8 +620,6 @@ static int parse_viewport(const char *wps_bufptr,
/* Set the defaults for fields not user-specified */ /* Set the defaults for fields not user-specified */
vp->drawmode = DRMODE_SOLID; vp->drawmode = DRMODE_SOLID;
vp->xmargin = 0;
vp->ymargin = 0;
/* Work out the depth of this display */ /* Work out the depth of this display */
#ifdef HAVE_REMOTE_LCD #ifdef HAVE_REMOTE_LCD
@ -818,16 +820,6 @@ static int parse_progressbar(const char *wps_bufptr,
int line_y_pos = font_height*(wps_data->num_lines - int line_y_pos = font_height*(wps_data->num_lines -
wps_data->viewports[wps_data->num_viewports].first_line); wps_data->viewports[wps_data->num_viewports].first_line);
/** Remove this bit when the remove lcd margins patch goes in **/
bool draw_sb = global_settings.statusbar;
if (wps_data->wps_sb_tag)
draw_sb = wps_data->show_sb_on_wps;
if (wps_data->num_viewports == 0 && draw_sb)
line_y_pos += STATUSBAR_HEIGHT;
/** Remove the above bit when the remove lcd margins patch goes in **/
if (wps_data->progressbar_count +1 >= MAX_PROGRESSBARS) if (wps_data->progressbar_count +1 >= MAX_PROGRESSBARS)
return WPS_ERROR_INVALID_PARAM; return WPS_ERROR_INVALID_PARAM;
@ -1106,33 +1098,6 @@ static int parse_albumart_conditional(const char *wps_bufptr,
}; };
#endif /* HAVE_ALBUMART */ #endif /* HAVE_ALBUMART */
#ifdef HAVE_LCD_BITMAP
static int parse_leftmargin(const char *wps_bufptr, struct wps_token *token,
struct wps_data *wps_data)
{
const char* p;
const char* pend;
const char *newline;
(void)wps_data; /* Kill the warning */
/* valid tag looks like %m|12| */
if(*wps_bufptr == '|')
{
p = wps_bufptr + 1;
newline = strchr(wps_bufptr, '\n');
if(isdigit(*p) && (pend = strchr(p, '|')) && pend < newline)
{
token->value.i = atoi(p);
return pend - wps_bufptr + 1;
}
}
/* invalid tag syntax */
return WPS_ERROR_INVALID_PARAM;
}
#endif
/* Parse a generic token from the given string. Return the length read */ /* Parse a generic token from the given string. Return the length read */
static int parse_token(const char *wps_bufptr, struct wps_data *wps_data) static int parse_token(const char *wps_bufptr, struct wps_data *wps_data)
@ -1583,15 +1548,21 @@ bool wps_data_load(struct wps_data *wps_data,
/* Initialise the first (default) viewport */ /* Initialise the first (default) viewport */
wps_data->viewports[0].vp.x = 0; wps_data->viewports[0].vp.x = 0;
wps_data->viewports[0].vp.y = 0;
wps_data->viewports[0].vp.width = display->width; wps_data->viewports[0].vp.width = display->width;
wps_data->viewports[0].vp.height = display->height; if (!global_settings.statusbar)
{
wps_data->viewports[0].vp.y = 0;
wps_data->viewports[0].vp.height = display->height;
}
else
{
wps_data->viewports[0].vp.y = STATUSBAR_HEIGHT;
wps_data->viewports[0].vp.height = display->height - STATUSBAR_HEIGHT;
}
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
wps_data->viewports[0].vp.font = FONT_UI; wps_data->viewports[0].vp.font = FONT_UI;
wps_data->viewports[0].vp.drawmode = DRMODE_SOLID; wps_data->viewports[0].vp.drawmode = DRMODE_SOLID;
#endif #endif
wps_data->viewports[0].vp.xmargin = display->getxmargin();
wps_data->viewports[0].vp.ymargin = display->getymargin();
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
if (display->depth > 1) if (display->depth > 1)
{ {

View file

@ -66,7 +66,6 @@ bool logfdisplay(void)
if(!lines) if(!lines)
return false; return false;
lcd_setmargins(0, 0);
lcd_clear_display(); lcd_clear_display();
do { do {

View file

@ -21,6 +21,7 @@
#include <stddef.h> #include <stddef.h>
#include <limits.h> #include <limits.h>
#include "config.h" #include "config.h"
#include "events.h"
#include "lang.h" #include "lang.h"
#include "action.h" #include "action.h"
#include "settings.h" #include "settings.h"
@ -35,6 +36,7 @@
#include "lcd.h" #include "lcd.h"
#include "lcd-remote.h" #include "lcd-remote.h"
#include "backdrop.h" #include "backdrop.h"
#include "statusbar.h"
#ifdef HAVE_BACKLIGHT #ifdef HAVE_BACKLIGHT
static int filterfirstkeypress_callback(int action,const struct menu_item_ex *this_item) static int filterfirstkeypress_callback(int action,const struct menu_item_ex *this_item)
@ -300,6 +302,7 @@ static int statusbar_callback(int action,const struct menu_item_ex *this_item)
switch (action) switch (action)
{ {
case ACTION_EXIT_MENUITEM: case ACTION_EXIT_MENUITEM:
send_event(STATUSBAR_TOGGLE_EVENT, NULL);
/* this should be changed so only the viewports are reloaded */ /* this should be changed so only the viewports are reloaded */
settings_apply(false); settings_apply(false);
break; break;

View file

@ -1758,15 +1758,6 @@ static void display_playlist_count(int count, const unsigned char *fmt,
} }
fmt = P2STR(fmt); fmt = P2STR(fmt);
lcd_clear_display();
#ifdef HAVE_LCD_BITMAP
if(global_settings.statusbar)
lcd_setmargins(0, STATUSBAR_HEIGHT);
else
lcd_setmargins(0, 0);
#endif
gui_syncsplash(0, fmt, count, str(LANG_OFF_ABORT)); gui_syncsplash(0, fmt, count, str(LANG_OFF_ABORT));
} }

View file

@ -75,7 +75,6 @@ static const struct plugin_api rockbox_api = {
lcd_set_contrast, lcd_set_contrast,
lcd_update, lcd_update,
lcd_clear_display, lcd_clear_display,
lcd_setmargins,
lcd_getstringsize, lcd_getstringsize,
lcd_putsxy, lcd_putsxy,
lcd_puts, lcd_puts,
@ -131,6 +130,10 @@ static const struct plugin_api rockbox_api = {
#ifdef HAVE_LCD_INVERT #ifdef HAVE_LCD_INVERT
lcd_set_invert_display, lcd_set_invert_display,
#endif /* HAVE_LCD_INVERT */ #endif /* HAVE_LCD_INVERT */
#ifdef HAVE_LCD_ENABLE
lcd_set_enable_hook,
&button_queue,
#endif
bidi_l2v, bidi_l2v,
font_get_bits, font_get_bits,
font_load, font_load,
@ -158,7 +161,6 @@ static const struct plugin_api rockbox_api = {
/* remote lcd */ /* remote lcd */
lcd_remote_set_contrast, lcd_remote_set_contrast,
lcd_remote_clear_display, lcd_remote_clear_display,
lcd_remote_setmargins,
lcd_remote_puts, lcd_remote_puts,
lcd_remote_puts_scroll, lcd_remote_puts_scroll,
lcd_remote_stop_scroll, lcd_remote_stop_scroll,
@ -216,6 +218,8 @@ static const struct plugin_api rockbox_api = {
gui_synclist_limit_scroll, gui_synclist_limit_scroll,
gui_synclist_do_button, gui_synclist_do_button,
gui_synclist_set_title, gui_synclist_set_title,
simplelist_info_init,
simplelist_show_list,
/* button */ /* button */
button_get, button_get,
@ -598,13 +602,7 @@ static const struct plugin_api rockbox_api = {
/* new stuff at the end, sort into place next time /* new stuff at the end, sort into place next time
the API gets incompatible */ the API gets incompatible */
simplelist_info_init,
simplelist_show_list,
#ifdef HAVE_LCD_ENABLE
lcd_set_enable_hook,
&button_queue,
#endif
}; };
int plugin_load(const char* plugin, const void* parameter) int plugin_load(const char* plugin, const void* parameter)
@ -620,10 +618,6 @@ int plugin_load(const char* plugin, const void* parameter)
unsigned my_core; unsigned my_core;
#endif #endif
#endif /* !SIMULATOR */ #endif /* !SIMULATOR */
int xm, ym;
#ifdef HAVE_REMOTE_LCD
int rxm, rym;
#endif
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
fb_data* old_backdrop; fb_data* old_backdrop;
@ -706,9 +700,6 @@ int plugin_load(const char* plugin, const void* parameter)
plugin_loaded = true; plugin_loaded = true;
xm = lcd_getxmargin();
ym = lcd_getymargin();
lcd_setmargins(0,0);
#if defined HAVE_LCD_BITMAP && LCD_DEPTH > 1 #if defined HAVE_LCD_BITMAP && LCD_DEPTH > 1
old_backdrop = lcd_get_backdrop(); old_backdrop = lcd_get_backdrop();
@ -717,9 +708,6 @@ int plugin_load(const char* plugin, const void* parameter)
lcd_update(); lcd_update();
#ifdef HAVE_REMOTE_LCD #ifdef HAVE_REMOTE_LCD
rxm = lcd_remote_getxmargin();
rym = lcd_remote_getymargin();
lcd_remote_setmargins(0, 0);
lcd_remote_clear_display(); lcd_remote_clear_display();
lcd_remote_update(); lcd_remote_update();
#endif #endif
@ -744,8 +732,6 @@ int plugin_load(const char* plugin, const void* parameter)
#endif /* LCD_DEPTH */ #endif /* LCD_DEPTH */
#endif /* HAVE_LCD_BITMAP */ #endif /* HAVE_LCD_BITMAP */
/* restore margins */
lcd_setmargins(xm,ym);
lcd_clear_display(); lcd_clear_display();
lcd_update(); lcd_update();
@ -756,7 +742,6 @@ int plugin_load(const char* plugin, const void* parameter)
#else #else
lcd_remote_set_drawmode(DRMODE_SOLID); lcd_remote_set_drawmode(DRMODE_SOLID);
#endif #endif
lcd_remote_setmargins(rxm, rym);
lcd_remote_clear_display(); lcd_remote_clear_display();

View file

@ -124,12 +124,12 @@ void* plugin_get_buffer(size_t *buffer_size);
#define PLUGIN_MAGIC 0x526F634B /* RocK */ #define PLUGIN_MAGIC 0x526F634B /* RocK */
/* increase this every time the api struct changes */ /* increase this every time the api struct changes */
#define PLUGIN_API_VERSION 116 #define PLUGIN_API_VERSION 117
/* update this to latest version if a change to the api struct breaks /* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any backwards compatibility (and please take the opportunity to sort in any
new function which are "waiting" at the end of the function table) */ new function which are "waiting" at the end of the function table) */
#define PLUGIN_MIN_API_VERSION 114 #define PLUGIN_MIN_API_VERSION 117
/* plugin return codes */ /* plugin return codes */
enum plugin_status { enum plugin_status {
@ -150,7 +150,6 @@ struct plugin_api {
void (*lcd_set_contrast)(int x); void (*lcd_set_contrast)(int x);
void (*lcd_update)(void); void (*lcd_update)(void);
void (*lcd_clear_display)(void); void (*lcd_clear_display)(void);
void (*lcd_setmargins)(int x, int y);
int (*lcd_getstringsize)(const unsigned char *str, int *w, int *h); int (*lcd_getstringsize)(const unsigned char *str, int *w, int *h);
void (*lcd_putsxy)(int x, int y, const unsigned char *string); void (*lcd_putsxy)(int x, int y, const unsigned char *string);
void (*lcd_puts)(int x, int y, const unsigned char *string); void (*lcd_puts)(int x, int y, const unsigned char *string);
@ -220,6 +219,10 @@ struct plugin_api {
void (*lcd_set_invert_display)(bool yesno); void (*lcd_set_invert_display)(bool yesno);
#endif /* HAVE_LCD_INVERT */ #endif /* HAVE_LCD_INVERT */
#ifdef HAVE_LCD_ENABLE
void (*lcd_set_enable_hook)(void (*enable_hook)(void));
struct event_queue *button_queue;
#endif
unsigned short *(*bidi_l2v)( const unsigned char *str, int orientation ); unsigned short *(*bidi_l2v)( const unsigned char *str, int orientation );
const unsigned char *(*font_get_bits)( struct font *pf, unsigned short char_code ); const unsigned char *(*font_get_bits)( struct font *pf, unsigned short char_code );
struct font* (*font_load)(const char *path); struct font* (*font_load)(const char *path);
@ -253,7 +256,6 @@ struct plugin_api {
/* remote lcd */ /* remote lcd */
void (*lcd_remote_set_contrast)(int x); void (*lcd_remote_set_contrast)(int x);
void (*lcd_remote_clear_display)(void); void (*lcd_remote_clear_display)(void);
void (*lcd_remote_setmargins)(int x, int y);
void (*lcd_remote_puts)(int x, int y, const unsigned char *string); void (*lcd_remote_puts)(int x, int y, const unsigned char *string);
void (*lcd_remote_puts_scroll)(int x, int y, const unsigned char* string); void (*lcd_remote_puts_scroll)(int x, int y, const unsigned char* string);
void (*lcd_remote_stop_scroll)(void); void (*lcd_remote_stop_scroll)(void);
@ -317,6 +319,9 @@ struct plugin_api {
bool (*gui_synclist_do_button)(struct gui_synclist * lists, bool (*gui_synclist_do_button)(struct gui_synclist * lists,
unsigned *action, enum list_wrap wrap); unsigned *action, enum list_wrap wrap);
void (*gui_synclist_set_title)(struct gui_synclist *lists, char* title, int icon); void (*gui_synclist_set_title)(struct gui_synclist *lists, char* title, int icon);
void (*simplelist_info_init)(struct simplelist_info *info, char* title,
int count, void* data);
bool (*simplelist_show_list)(struct simplelist_info *info);
/* button */ /* button */
long (*button_get)(bool block); long (*button_get)(bool block);
@ -748,14 +753,7 @@ struct plugin_api {
/* new stuff at the end, sort into place next time /* new stuff at the end, sort into place next time
the API gets incompatible */ the API gets incompatible */
void (*simplelist_info_init)(struct simplelist_info *info, char* title,
int count, void* data);
bool (*simplelist_show_list)(struct simplelist_info *info);
#ifdef HAVE_LCD_ENABLE
void (*lcd_set_enable_hook)(void (*enable_hook)(void));
struct event_queue *button_queue;
#endif
}; };
/* plugin header */ /* plugin header */

View file

@ -744,7 +744,6 @@ int solitaire_menu(bool in_game)
break; break;
case 2: case 2:
rb->lcd_setmargins(0, 0);
if (solitaire_help() == HELP_USB) if (solitaire_help() == HELP_USB)
result = MENU_USB; result = MENU_USB;
break; break;
@ -766,7 +765,6 @@ int solitaire_menu(bool in_game)
} }
} }
menu_exit(m); menu_exit(m);
rb->lcd_setmargins(0, 0);
return result; return result;
} }

View file

@ -44,7 +44,6 @@ static bool log_init(bool use_logfile)
{ {
int h; int h;
rb->lcd_setmargins(0, 0);
rb->lcd_getstringsize("A", NULL, &h); rb->lcd_getstringsize("A", NULL, &h);
max_line = LCD_HEIGHT / h; max_line = LCD_HEIGHT / h;
line = 0; line = 0;

View file

@ -77,7 +77,6 @@ static bool log_init(void)
{ {
int h; int h;
rb->lcd_setmargins(0, 0);
rb->lcd_getstringsize("A", NULL, &h); rb->lcd_getstringsize("A", NULL, &h);
max_line = LCD_HEIGHT / h; max_line = LCD_HEIGHT / h;
line = 0; line = 0;

View file

@ -57,14 +57,12 @@ static void log_init(void)
{ {
int h; int h;
rb->lcd_setmargins(0, 0);
rb->lcd_getstringsize("A", NULL, &h); rb->lcd_getstringsize("A", NULL, &h);
max_line = LCD_HEIGHT / h; max_line = LCD_HEIGHT / h;
line = 0; line = 0;
rb->lcd_clear_display(); rb->lcd_clear_display();
rb->lcd_update(); rb->lcd_update();
#ifdef HAVE_REMOTE_LCD #ifdef HAVE_REMOTE_LCD
rb->lcd_remote_setmargins(0, 0);
rb->lcd_remote_getstringsize("A", NULL, &h); rb->lcd_remote_getstringsize("A", NULL, &h);
remote_max_line = LCD_REMOTE_HEIGHT / h; remote_max_line = LCD_REMOTE_HEIGHT / h;
remote_line = 0; remote_line = 0;

View file

@ -43,8 +43,6 @@ static struct viewport vp0 =
.height = 20, .height = 20,
.font = FONT_UI, .font = FONT_UI,
.drawmode = DRMODE_SOLID, .drawmode = DRMODE_SOLID,
.xmargin = 0,
.ymargin = 0,
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
.fg_pattern = LCD_DEFAULT_FG, .fg_pattern = LCD_DEFAULT_FG,
.bg_pattern = BGCOLOR_1, .bg_pattern = BGCOLOR_1,
@ -64,8 +62,6 @@ static struct viewport vp1 =
.height = LCD_HEIGHT / 2, .height = LCD_HEIGHT / 2,
.font = FONT_SYSFIXED, .font = FONT_SYSFIXED,
.drawmode = DRMODE_SOLID, .drawmode = DRMODE_SOLID,
.xmargin = 0,
.ymargin = 0,
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
.fg_pattern = LCD_DEFAULT_FG, .fg_pattern = LCD_DEFAULT_FG,
.bg_pattern = LCD_DEFAULT_BG, .bg_pattern = LCD_DEFAULT_BG,
@ -85,8 +81,6 @@ static struct viewport vp2 =
.height = (LCD_HEIGHT / 2), .height = (LCD_HEIGHT / 2),
.font = FONT_UI, .font = FONT_UI,
.drawmode = DRMODE_SOLID, .drawmode = DRMODE_SOLID,
.xmargin = 0,
.ymargin = 0,
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
.fg_pattern = FGCOLOR_1, .fg_pattern = FGCOLOR_1,
.bg_pattern = BGCOLOR_2, .bg_pattern = BGCOLOR_2,
@ -107,8 +101,6 @@ static struct viewport vp3 =
.height = (LCD_HEIGHT / 4), .height = (LCD_HEIGHT / 4),
.font = FONT_SYSFIXED, .font = FONT_SYSFIXED,
.drawmode = DRMODE_SOLID, .drawmode = DRMODE_SOLID,
.xmargin = 0,
.ymargin = 0,
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
.fg_pattern = LCD_BLACK, .fg_pattern = LCD_BLACK,
.bg_pattern = LCD_WHITE, .bg_pattern = LCD_WHITE,
@ -130,8 +122,6 @@ static struct viewport rvp0 =
.height = LCD_REMOTE_HEIGHT - 10, .height = LCD_REMOTE_HEIGHT - 10,
.font = FONT_SYSFIXED, .font = FONT_SYSFIXED,
.drawmode = DRMODE_SOLID, .drawmode = DRMODE_SOLID,
.xmargin = 0,
.ymargin = 0,
#if LCD_REMOTE_DEPTH > 1 #if LCD_REMOTE_DEPTH > 1
.fg_pattern = LCD_REMOTE_BLACK, .fg_pattern = LCD_REMOTE_BLACK,
.bg_pattern = LCD_REMOTE_LIGHTGRAY, .bg_pattern = LCD_REMOTE_LIGHTGRAY,
@ -146,8 +136,6 @@ static struct viewport rvp1 =
.height = LCD_REMOTE_HEIGHT - 10, .height = LCD_REMOTE_HEIGHT - 10,
.font = FONT_SYSFIXED, .font = FONT_SYSFIXED,
.drawmode = DRMODE_SOLID, .drawmode = DRMODE_SOLID,
.xmargin = 0,
.ymargin = 0,
#if LCD_REMOTE_DEPTH > 1 #if LCD_REMOTE_DEPTH > 1
.fg_pattern = LCD_REMOTE_DEFAULT_FG, .fg_pattern = LCD_REMOTE_DEFAULT_FG,
.bg_pattern = LCD_REMOTE_DEFAULT_BG .bg_pattern = LCD_REMOTE_DEFAULT_BG
@ -253,8 +241,6 @@ static struct viewport vp0 =
.y = 0, .y = 0,
.width = 5, .width = 5,
.height = 1, .height = 1,
.xmargin = 0,
.ymargin = 0,
}; };
static struct viewport vp1 = static struct viewport vp1 =
@ -263,8 +249,6 @@ static struct viewport vp1 =
.y = 0, .y = 0,
.width = 5, .width = 5,
.height = 1, .height = 1,
.xmargin = 0,
.ymargin = 0,
}; };
static struct viewport vp2 = static struct viewport vp2 =
@ -273,8 +257,6 @@ static struct viewport vp2 =
.y = 1, .y = 1,
.width = LCD_WIDTH, .width = LCD_WIDTH,
.height = 1, .height = 1,
.xmargin = 0,
.ymargin = 0,
}; };

View file

@ -1421,7 +1421,6 @@ static bool viewer_options_menu(void)
result = menu_run(m); result = menu_run(m);
menu_exit(m); menu_exit(m);
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
rb->lcd_setmargins(0,0);
/* Show-scrollbar mode for current view-width mode */ /* Show-scrollbar mode for current view-width mode */
init_need_scrollbar(); init_need_scrollbar();
@ -1459,9 +1458,6 @@ static void viewer_menu(void)
break; break;
} }
menu_exit(m); menu_exit(m);
#ifdef HAVE_LCD_BITMAP
rb->lcd_setmargins(0,0);
#endif
viewer_draw(col); viewer_draw(col);
} }

View file

@ -68,6 +68,7 @@
#include "action.h" #include "action.h"
#include "radio.h" #include "radio.h"
#include "sound_menu.h" #include "sound_menu.h"
#include "viewport.h"
#ifdef HAVE_RECORDING #ifdef HAVE_RECORDING
/* This array holds the record timer interval lengths, in seconds */ /* This array holds the record timer interval lengths, in seconds */
@ -882,6 +883,8 @@ bool recording_screen(bool no_source)
int base_style = STYLE_INVERT; int base_style = STYLE_INVERT;
int style; int style;
struct viewport vp[NB_SCREENS];
int ymargin = global_settings.cursor_style?0:10;
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
if (global_settings.cursor_style == 2) { if (global_settings.cursor_style == 2) {
base_style |= STYLE_COLORBAR; base_style |= STYLE_COLORBAR;
@ -956,11 +959,12 @@ bool recording_screen(bool no_source)
FOR_NB_SCREENS(i) FOR_NB_SCREENS(i)
{ {
screens[i].setfont(FONT_SYSFIXED); viewport_set_defaults(&vp[i], i);
vp[i].font = FONT_SYSFIXED;
screens[i].set_viewport(&vp[i]);
screens[i].getstringsize("M", &w, &h); screens[i].getstringsize("M", &w, &h);
screens[i].setmargins(global_settings.cursor_style ? 0 : w, 8); filename_offset[i] = ((vp[i].height >= 80) ? 1 : 0);
filename_offset[i] = ((screens[i].height >= 80) ? 1 : 0); pm_y[i] = h * (2 + filename_offset[i]);
pm_y[i] = 8 + h * (2 + filename_offset[i]);
} }
#ifdef HAVE_REMOTE_LCD #ifdef HAVE_REMOTE_LCD
@ -968,8 +972,8 @@ bool recording_screen(bool no_source)
{ {
screens[1].clear_display(); screens[1].clear_display();
snprintf(buf, sizeof(buf), str(LANG_REMOTE_LCD_ON)); snprintf(buf, sizeof(buf), str(LANG_REMOTE_LCD_ON));
screens[1].puts((screens[1].width/w - strlen(buf))/2 + 1, screens[1].puts((vp[1].width/w - strlen(buf))/2 + 1,
screens[1].height/(h*2) + 1, buf); vp[1].height/(h*2) + 1, buf);
screens[1].update(); screens[1].update();
gui_syncsplash(0, str(LANG_REMOTE_LCD_OFF)); gui_syncsplash(0, str(LANG_REMOTE_LCD_OFF));
} }
@ -1363,9 +1367,8 @@ bool recording_screen(bool no_source)
FOR_NB_SCREENS(i) FOR_NB_SCREENS(i)
{ {
screens[i].set_viewport(&vp[i]);
screens[i].setfont(FONT_SYSFIXED); screens[i].setfont(FONT_SYSFIXED);
screens[i].setmargins(
global_settings.cursor_style ? 0 : w, 8);
} }
} }
} }
@ -1613,7 +1616,9 @@ bool recording_screen(bool no_source)
else else
{ {
for(i = 0; i < screen_update; i++) for(i = 0; i < screen_update; i++)
screens[i].puts(0, filename_offset[i] + PM_HEIGHT + 2, buf); screens[i].putsxy(ymargin,
SYSFONT_HEIGHT*(filename_offset[i]+
PM_HEIGHT + 2), buf);
} }
if(global_settings.rec_source == AUDIO_SRC_MIC) if(global_settings.rec_source == AUDIO_SRC_MIC)
@ -1632,8 +1637,9 @@ bool recording_screen(bool no_source)
else else
{ {
for(i = 0; i < screen_update; i++) for(i = 0; i < screen_update; i++)
screens[i].puts(0, filename_offset[i] + screens[i].putsxy(ymargin,
PM_HEIGHT + 3, buf); SYSFONT_HEIGHT*(filename_offset[i] +
PM_HEIGHT + 3), buf);
} }
} }
else if(0 else if(0
@ -1664,8 +1670,9 @@ bool recording_screen(bool no_source)
else else
{ {
for(i = 0; i < screen_update; i++) for(i = 0; i < screen_update; i++)
screens[i].puts(0, filename_offset[i] + screens[i].putsxy(ymargin,
PM_HEIGHT + 3, buf); SYSFONT_HEIGHT*(filename_offset[i] +
PM_HEIGHT + 3), buf);
} }
snprintf(buf, sizeof(buf), "%s:%s", snprintf(buf, sizeof(buf), "%s:%s",
@ -1688,8 +1695,9 @@ bool recording_screen(bool no_source)
else else
{ {
for(i = 0; i < screen_update; i++) for(i = 0; i < screen_update; i++)
screens[i].puts(0, filename_offset[i] + screens[i].putsxy(ymargin,
PM_HEIGHT + 4, buf); SYSFONT_HEIGHT*(filename_offset[i] +
PM_HEIGHT + 4), buf);
} }
} }
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
@ -1721,7 +1729,7 @@ bool recording_screen(bool no_source)
break; break;
} /* end switch */ } /* end switch */
#ifdef HAVE_AGC #ifdef HAVE_AGC
if (screens[i].height < h * (2 + filename_offset[i] + if (vp[i].height < h * (2 + filename_offset[i] +
PM_HEIGHT + line[i])) PM_HEIGHT + line[i]))
{ {
line[i] -= 1; line[i] -= 1;
@ -1785,8 +1793,9 @@ bool recording_screen(bool no_source)
{ {
for(i = 0; i < screen_update; i++) { for(i = 0; i < screen_update; i++) {
if (display_agc[i]) { if (display_agc[i]) {
screens[i].puts(0, filename_offset[i] + screens[i].putsxy(ymargin,
PM_HEIGHT + line[i], buf); SYSFONT_HEIGHT*(filename_offset[i] +
PM_HEIGHT + line[i]), buf);
} }
} }
} }
@ -1859,7 +1868,9 @@ bool recording_screen(bool no_source)
for(i = 0; i < screen_update; i++) for(i = 0; i < screen_update; i++)
{ {
screens[i].set_viewport(NULL);
gui_statusbar_draw(&(statusbars.statusbars[i]), true); gui_statusbar_draw(&(statusbars.statusbars[i]), true);
screens[i].set_viewport(&vp[i]);
peak_meter_screen(&screens[i], pm_x, pm_y[i], h*PM_HEIGHT); peak_meter_screen(&screens[i], pm_x, pm_y[i], h*PM_HEIGHT);
screens[i].update(); screens[i].update();
} }
@ -1867,11 +1878,11 @@ bool recording_screen(bool no_source)
/* draw the trigger status */ /* draw the trigger status */
FOR_NB_SCREENS(i) FOR_NB_SCREENS(i)
{ {
trig_width[i] = ((screens[i].height < 64) || trig_width[i] = ((vp[i].height < 64) ||
((screens[i].height < 72) && (PM_HEIGHT > 1))) ? ((vp[i].height < 72) && (PM_HEIGHT > 1))) ?
screens[i].width - 14 * w : screens[i].width; screens[i].width - 14 * w : screens[i].width;
trig_xpos[i] = screens[i].width - trig_width[i]; trig_xpos[i] = screens[i].width - trig_width[i];
trig_ypos[i] = ((screens[i].height < 72) && (PM_HEIGHT > 1)) ? trig_ypos[i] = ((vp[i].height < 72) && (PM_HEIGHT > 1)) ?
h*2 : h*2 :
h*(1 + filename_offset[i] + PM_HEIGHT + h*(1 + filename_offset[i] + PM_HEIGHT +
line[i] line[i]

View file

@ -51,11 +51,8 @@ struct screen screens[NB_SCREENS] =
.has_disk_led=true, .has_disk_led=true,
#endif #endif
.set_viewport=&lcd_set_viewport, .set_viewport=&lcd_set_viewport,
.setmargins=&lcd_setmargins,
.getwidth=&lcd_getwidth, .getwidth=&lcd_getwidth,
.getheight=&lcd_getheight, .getheight=&lcd_getheight,
.getymargin=&lcd_getymargin,
.getxmargin=&lcd_getxmargin,
.getstringsize=&lcd_getstringsize, .getstringsize=&lcd_getstringsize,
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
.setfont=&lcd_setfont, .setfont=&lcd_setfont,
@ -142,11 +139,8 @@ struct screen screens[NB_SCREENS] =
.pixel_format=LCD_REMOTE_PIXELFORMAT, .pixel_format=LCD_REMOTE_PIXELFORMAT,
.has_disk_led=false, .has_disk_led=false,
.set_viewport=&lcd_remote_set_viewport, .set_viewport=&lcd_remote_set_viewport,
.setmargins=&lcd_remote_setmargins,
.getwidth=&lcd_remote_getwidth, .getwidth=&lcd_remote_getwidth,
.getheight=&lcd_remote_getheight, .getheight=&lcd_remote_getheight,
.getymargin=&lcd_remote_getymargin,
.getxmargin=&lcd_remote_getxmargin,
.getstringsize=&lcd_remote_getstringsize, .getstringsize=&lcd_remote_getstringsize,
#if 1 /* all remote LCDs are bitmapped so far */ #if 1 /* all remote LCDs are bitmapped so far */
.setfont=&lcd_remote_setfont, .setfont=&lcd_remote_setfont,

View file

@ -72,11 +72,8 @@ struct screen
bool has_buttonbar; bool has_buttonbar;
#endif #endif
void (*set_viewport)(struct viewport* vp); void (*set_viewport)(struct viewport* vp);
void (*setmargins)(int x, int y);
int (*getwidth)(void); int (*getwidth)(void);
int (*getheight)(void); int (*getheight)(void);
int (*getxmargin)(void);
int (*getymargin)(void);
int (*getstringsize)(const unsigned char *str, int *w, int *h); int (*getstringsize)(const unsigned char *str, int *w, int *h);
#if defined(HAVE_LCD_BITMAP) || defined(HAVE_REMOTE_LCD) /* always bitmap */ #if defined(HAVE_LCD_BITMAP) || defined(HAVE_REMOTE_LCD) /* always bitmap */
void (*setfont)(int newfont); void (*setfont)(int newfont);
@ -155,32 +152,6 @@ struct screen
void (*backlight_set_timeout)(int index); void (*backlight_set_timeout)(int index);
}; };
#ifdef HAVE_BUTTONBAR
/*
* Sets if the given screen has a buttonbar or not
* - screen : the screen structure
* - has : a boolean telling wether the current screen will have a buttonbar or not
*/
#define screen_has_buttonbar(screen, has_btnb) \
(screen)->has_buttonbar=has_btnb;
#endif
/*
* Sets the x margin in pixels for the given screen
* - screen : the screen structure
* - xmargin : the number of pixels to the left of the screen
*/
#define screen_set_xmargin(screen, xmargin) \
(screen)->setmargins(xmargin, (screen)->getymargin());
/*
* Sets the y margin in pixels for the given screen
* - screen : the screen structure
* - xmargin : the number of pixels to the top of the screen
*/
#define screen_set_ymargin(screen, ymargin) \
(screen)->setmargins((screen)->getxmargin(), ymargin);
#if defined(HAVE_LCD_BITMAP) || defined(HAVE_REMOTE_LCD) #if defined(HAVE_LCD_BITMAP) || defined(HAVE_REMOTE_LCD)
/* /*
* Clear only a given area of the screen * Clear only a given area of the screen

View file

@ -61,8 +61,6 @@ static struct viewport default_vp =
.height = LCD_HEIGHT, .height = LCD_HEIGHT,
.font = FONT_SYSFIXED, .font = FONT_SYSFIXED,
.drawmode = DRMODE_SOLID, .drawmode = DRMODE_SOLID,
.xmargin = 0,
.ymargin = 0,
.fg_pattern = LCD_DEFAULT_FG, .fg_pattern = LCD_DEFAULT_FG,
.bg_pattern = LCD_DEFAULT_BG, .bg_pattern = LCD_DEFAULT_BG,
.lss_pattern = LCD_DEFAULT_BG, .lss_pattern = LCD_DEFAULT_BG,
@ -180,12 +178,6 @@ void lcd_set_drawinfo(int mode, unsigned fg_color, unsigned bg_color)
current_vp->bg_pattern = bg_color; current_vp->bg_pattern = bg_color;
} }
void lcd_setmargins(int x, int y)
{
current_vp->xmargin = x;
current_vp->ymargin = y;
}
int lcd_getwidth(void) int lcd_getwidth(void)
{ {
return current_vp->width; return current_vp->width;
@ -196,16 +188,6 @@ int lcd_getheight(void)
return current_vp->height; return current_vp->height;
} }
int lcd_getxmargin(void)
{
return current_vp->xmargin;
}
int lcd_getymargin(void)
{
return current_vp->ymargin;
}
void lcd_setfont(int newfont) void lcd_setfont(int newfont)
{ {
current_vp->font = newfont; current_vp->font = newfont;
@ -1005,8 +987,8 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style,
return; return;
lcd_getstringsize(str, &w, &h); lcd_getstringsize(str, &w, &h);
xpos = current_vp->xmargin + x*w / utf8length(str); xpos = x*w / utf8length(str);
ypos = current_vp->ymargin + y*h; ypos = y*h;
current_vp->drawmode = (style & STYLE_INVERT) ? current_vp->drawmode = (style & STYLE_INVERT) ?
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
if (style & STYLE_COLORED) { if (style & STYLE_COLORED) {
@ -1081,7 +1063,7 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string,
lcd_getstringsize(string, &w, &h); lcd_getstringsize(string, &w, &h);
if (current_vp->width - x * 8 - current_vp->xmargin < w) { if (current_vp->width - x * 8 < w) {
/* prepare scroll line */ /* prepare scroll line */
char *end; char *end;
@ -1094,7 +1076,7 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string,
/* scroll bidirectional or forward only depending on the string /* scroll bidirectional or forward only depending on the string
width */ width */
if ( lcd_scroll_info.bidir_limit ) { if ( lcd_scroll_info.bidir_limit ) {
s->bidir = s->width < (current_vp->width - current_vp->xmargin) * s->bidir = s->width < (current_vp->width) *
(100 + lcd_scroll_info.bidir_limit) / 100; (100 + lcd_scroll_info.bidir_limit) / 100;
} }
else else
@ -1113,7 +1095,7 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string,
s->y = y; s->y = y;
s->len = utf8length(string); s->len = utf8length(string);
s->offset = offset; s->offset = offset;
s->startx = current_vp->xmargin + x * s->width / s->len; s->startx = x * s->width / s->len;
s->backward = false; s->backward = false;
lcd_scroll_info.lines++; lcd_scroll_info.lines++;
} }
@ -1159,7 +1141,7 @@ void lcd_scroll_fn(void)
pf = font_get(current_vp->font); pf = font_get(current_vp->font);
xpos = s->startx; xpos = s->startx;
ypos = current_vp->ymargin + s->y * pf->height; ypos = s->y * pf->height;
if (s->bidir) { /* scroll bidirectional */ if (s->bidir) { /* scroll bidirectional */
if (s->offset <= 0) { if (s->offset <= 0) {

View file

@ -56,8 +56,6 @@ static struct viewport default_vp =
.height = LCDM(HEIGHT), .height = LCDM(HEIGHT),
.font = FONT_SYSFIXED, .font = FONT_SYSFIXED,
.drawmode = DRMODE_SOLID, .drawmode = DRMODE_SOLID,
.xmargin = 0,
.ymargin = 0,
}; };
static struct viewport* current_vp = &default_vp; static struct viewport* current_vp = &default_vp;
@ -107,22 +105,6 @@ int LCDFN(get_drawmode)(void)
return current_vp->drawmode; return current_vp->drawmode;
} }
void LCDFN(setmargins)(int x, int y)
{
current_vp->xmargin = x;
current_vp->ymargin = y;
}
int LCDFN(getxmargin)(void)
{
return current_vp->xmargin;
}
int LCDFN(getymargin)(void)
{
return current_vp->ymargin;
}
int LCDFN(getwidth)(void) int LCDFN(getwidth)(void)
{ {
return current_vp->width; return current_vp->width;
@ -760,8 +742,8 @@ void LCDFN(puts_style_offset)(int x, int y, const unsigned char *str,
return; return;
LCDFN(getstringsize)(str, &w, &h); LCDFN(getstringsize)(str, &w, &h);
xpos = current_vp->xmargin + x*w / utf8length(str); xpos = x*w / utf8length(str);
ypos = current_vp->ymargin + y*h; ypos = y*h;
current_vp->drawmode = (style & STYLE_INVERT) ? current_vp->drawmode = (style & STYLE_INVERT) ?
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
LCDFN(putsxyofs)(xpos, ypos, offset, str); LCDFN(putsxyofs)(xpos, ypos, offset, str);
@ -816,7 +798,7 @@ void LCDFN(puts_scroll_style_offset)(int x, int y, const unsigned char *string,
LCDFN(getstringsize)(string, &w, &h); LCDFN(getstringsize)(string, &w, &h);
if (current_vp->width - x * 8 - current_vp->xmargin < w) { if (current_vp->width - x * 8 < w) {
/* prepare scroll line */ /* prepare scroll line */
char *end; char *end;
@ -829,7 +811,7 @@ void LCDFN(puts_scroll_style_offset)(int x, int y, const unsigned char *string,
/* scroll bidirectional or forward only depending on the string /* scroll bidirectional or forward only depending on the string
width */ width */
if ( LCDFN(scroll_info).bidir_limit ) { if ( LCDFN(scroll_info).bidir_limit ) {
s->bidir = s->width < (current_vp->width - current_vp->xmargin) * s->bidir = s->width < (current_vp->width) *
(100 + LCDFN(scroll_info).bidir_limit) / 100; (100 + LCDFN(scroll_info).bidir_limit) / 100;
} }
else else
@ -848,7 +830,7 @@ void LCDFN(puts_scroll_style_offset)(int x, int y, const unsigned char *string,
s->y = y; s->y = y;
s->len = utf8length(string); s->len = utf8length(string);
s->offset = offset; s->offset = offset;
s->startx = current_vp->xmargin + x * s->width / s->len;; s->startx = x * s->width / s->len;;
s->backward = false; s->backward = false;
LCDFN(scroll_info).lines++; LCDFN(scroll_info).lines++;
@ -880,7 +862,7 @@ void LCDFN(scroll_fn)(void)
pf = font_get(current_vp->font); pf = font_get(current_vp->font);
xpos = s->startx; xpos = s->startx;
ypos = current_vp->ymargin + s->y * pf->height; ypos = s->y * pf->height;
if (s->bidir) { /* scroll bidirectional */ if (s->bidir) { /* scroll bidirectional */
if (s->offset <= 0) { if (s->offset <= 0) {

View file

@ -54,8 +54,6 @@ static struct viewport default_vp =
.height = LCD_HEIGHT, .height = LCD_HEIGHT,
.font = FONT_SYSFIXED, .font = FONT_SYSFIXED,
.drawmode = DRMODE_SOLID, .drawmode = DRMODE_SOLID,
.xmargin = 0,
.ymargin = 0,
.fg_pattern = LCD_DEFAULT_FG, .fg_pattern = LCD_DEFAULT_FG,
.bg_pattern = LCD_DEFAULT_BG .bg_pattern = LCD_DEFAULT_BG
}; };
@ -141,22 +139,6 @@ void lcd_set_drawinfo(int mode, unsigned fg_brightness, unsigned bg_brightness)
lcd_set_background(bg_brightness); lcd_set_background(bg_brightness);
} }
void lcd_setmargins(int x, int y)
{
current_vp->xmargin = x;
current_vp->ymargin = y;
}
int lcd_getxmargin(void)
{
return current_vp->xmargin;
}
int lcd_getymargin(void)
{
return current_vp->ymargin;
}
int lcd_getwidth(void) int lcd_getwidth(void)
{ {
return current_vp->width; return current_vp->width;
@ -950,8 +932,8 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str,
return; return;
lcd_getstringsize(str, &w, &h); lcd_getstringsize(str, &w, &h);
xpos = current_vp->xmargin + x*w / utf8length((char *)str); xpos = x*w / utf8length((char *)str);
ypos = current_vp->ymargin + y*h; ypos = y*h;
current_vp->drawmode = (style & STYLE_INVERT) ? current_vp->drawmode = (style & STYLE_INVERT) ?
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
lcd_putsxyofs(xpos, ypos, offset, str); lcd_putsxyofs(xpos, ypos, offset, str);
@ -1003,7 +985,7 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string,
lcd_getstringsize(string, &w, &h); lcd_getstringsize(string, &w, &h);
if (current_vp->width - x * 8 - current_vp->xmargin < w) { if (current_vp->width - x * 8 < w) {
/* prepare scroll line */ /* prepare scroll line */
char *end; char *end;
@ -1016,7 +998,7 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string,
/* scroll bidirectional or forward only depending on the string /* scroll bidirectional or forward only depending on the string
width */ width */
if ( lcd_scroll_info.bidir_limit ) { if ( lcd_scroll_info.bidir_limit ) {
s->bidir = s->width < (current_vp->width - current_vp->xmargin) * s->bidir = s->width < (current_vp->width) *
(100 + lcd_scroll_info.bidir_limit) / 100; (100 + lcd_scroll_info.bidir_limit) / 100;
} }
else else
@ -1035,7 +1017,7 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string,
s->y = y; s->y = y;
s->len = utf8length((char *)string); s->len = utf8length((char *)string);
s->offset = offset; s->offset = offset;
s->startx = current_vp->xmargin + x * s->width / s->len;; s->startx = x * s->width / s->len;;
s->backward = false; s->backward = false;
lcd_scroll_info.lines++; lcd_scroll_info.lines++;
} }
@ -1066,7 +1048,7 @@ void lcd_scroll_fn(void)
pf = font_get(current_vp->font); pf = font_get(current_vp->font);
xpos = s->startx; xpos = s->startx;
ypos = current_vp->ymargin + s->y * pf->height; ypos = s->y * pf->height;
if (s->bidir) { /* scroll bidirectional */ if (s->bidir) { /* scroll bidirectional */
if (s->offset <= 0) { if (s->offset <= 0) {

View file

@ -56,8 +56,6 @@ static struct viewport default_vp =
.height = LCD_HEIGHT, .height = LCD_HEIGHT,
.font = FONT_SYSFIXED, .font = FONT_SYSFIXED,
.drawmode = DRMODE_SOLID, .drawmode = DRMODE_SOLID,
.xmargin = 0,
.ymargin = 0,
.fg_pattern = LCD_DEFAULT_FG, .fg_pattern = LCD_DEFAULT_FG,
.bg_pattern = LCD_DEFAULT_BG .bg_pattern = LCD_DEFAULT_BG
}; };
@ -144,22 +142,6 @@ void lcd_set_drawinfo(int mode, unsigned fg_brightness, unsigned bg_brightness)
lcd_set_background(bg_brightness); lcd_set_background(bg_brightness);
} }
void lcd_setmargins(int x, int y)
{
current_vp->xmargin = x;
current_vp->ymargin = y;
}
int lcd_getxmargin(void)
{
return current_vp->xmargin;
}
int lcd_getymargin(void)
{
return current_vp->ymargin;
}
int lcd_getwidth(void) int lcd_getwidth(void)
{ {
return current_vp->width; return current_vp->width;
@ -1088,8 +1070,8 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str,
return; return;
lcd_getstringsize(str, &w, &h); lcd_getstringsize(str, &w, &h);
xpos = current_vp->xmargin + x*w / utf8length((char *)str); xpos = x*w / utf8length((char *)str);
ypos = current_vp->ymargin + y*h; ypos = y*h;
current_vp->drawmode = (style & STYLE_INVERT) ? current_vp->drawmode = (style & STYLE_INVERT) ?
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
lcd_putsxyofs(xpos, ypos, offset, str); lcd_putsxyofs(xpos, ypos, offset, str);
@ -1142,7 +1124,7 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string,
lcd_getstringsize(string, &w, &h); lcd_getstringsize(string, &w, &h);
if (current_vp->width - x * 8 - current_vp->xmargin < w) { if (current_vp->width - x * 8< w) {
/* prepare scroll line */ /* prepare scroll line */
char *end; char *end;
@ -1155,7 +1137,7 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string,
/* scroll bidirectional or forward only depending on the string /* scroll bidirectional or forward only depending on the string
width */ width */
if ( lcd_scroll_info.bidir_limit ) { if ( lcd_scroll_info.bidir_limit ) {
s->bidir = s->width < (current_vp->width - current_vp->xmargin) * s->bidir = s->width < (current_vp->width) *
(100 + lcd_scroll_info.bidir_limit) / 100; (100 + lcd_scroll_info.bidir_limit) / 100;
} }
else else
@ -1174,7 +1156,7 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string,
s->y = y; s->y = y;
s->len = utf8length((char *)string); s->len = utf8length((char *)string);
s->offset = offset; s->offset = offset;
s->startx = current_vp->xmargin + x * s->width / s->len; s->startx = x * s->width / s->len;
s->backward = false; s->backward = false;
lcd_scroll_info.lines++; lcd_scroll_info.lines++;
@ -1206,7 +1188,7 @@ void lcd_scroll_fn(void)
pf = font_get(current_vp->font); pf = font_get(current_vp->font);
xpos = s->startx; xpos = s->startx;
ypos = current_vp->ymargin + s->y * pf->height; ypos = s->y * pf->height;
if (s->bidir) { /* scroll bidirectional */ if (s->bidir) { /* scroll bidirectional */
if (s->offset <= 0) { if (s->offset <= 0) {

View file

@ -60,8 +60,6 @@ static struct viewport default_vp =
.height = LCDM(HEIGHT), .height = LCDM(HEIGHT),
.font = FONT_SYSFIXED, .font = FONT_SYSFIXED,
.drawmode = DRMODE_SOLID, .drawmode = DRMODE_SOLID,
.xmargin = 0,
.ymargin = 0,
.fg_pattern = LCDM(DEFAULT_FG), .fg_pattern = LCDM(DEFAULT_FG),
.bg_pattern = LCDM(DEFAULT_BG) .bg_pattern = LCDM(DEFAULT_BG)
}; };
@ -175,23 +173,6 @@ int LCDFN(getheight)(void)
{ {
return current_vp->height; return current_vp->height;
} }
void LCDFN(setmargins)(int x, int y)
{
current_vp->xmargin = x;
current_vp->ymargin = y;
}
int LCDFN(getxmargin)(void)
{
return current_vp->xmargin;
}
int LCDFN(getymargin)(void)
{
return current_vp->ymargin;
}
void LCDFN(setfont)(int newfont) void LCDFN(setfont)(int newfont)
{ {
current_vp->font = newfont; current_vp->font = newfont;
@ -1105,8 +1086,8 @@ void LCDFN(puts_style_offset)(int x, int y, const unsigned char *str,
return; return;
LCDFN(getstringsize)(str, &w, &h); LCDFN(getstringsize)(str, &w, &h);
xpos = current_vp->xmargin + x*w / utf8length((char *)str); xpos = x*w / utf8length((char *)str);
ypos = current_vp->ymargin + y*h; ypos = y*h;
current_vp->drawmode = (style & STYLE_INVERT) ? current_vp->drawmode = (style & STYLE_INVERT) ?
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
LCDFN(putsxyofs)(xpos, ypos, offset, str); LCDFN(putsxyofs)(xpos, ypos, offset, str);
@ -1158,7 +1139,7 @@ void LCDFN(puts_scroll_style_offset)(int x, int y, const unsigned char *string,
LCDFN(getstringsize)(string, &w, &h); LCDFN(getstringsize)(string, &w, &h);
if (current_vp->width - x * 8 - current_vp->xmargin < w) { if (current_vp->width - x * 8 < w) {
/* prepare scroll line */ /* prepare scroll line */
char *end; char *end;
@ -1171,7 +1152,7 @@ void LCDFN(puts_scroll_style_offset)(int x, int y, const unsigned char *string,
/* scroll bidirectional or forward only depending on the string /* scroll bidirectional or forward only depending on the string
width */ width */
if ( LCDFN(scroll_info).bidir_limit ) { if ( LCDFN(scroll_info).bidir_limit ) {
s->bidir = s->width < (current_vp->width - current_vp->xmargin) * s->bidir = s->width < (current_vp->width) *
(100 + LCDFN(scroll_info).bidir_limit) / 100; (100 + LCDFN(scroll_info).bidir_limit) / 100;
} }
else else
@ -1190,7 +1171,7 @@ void LCDFN(puts_scroll_style_offset)(int x, int y, const unsigned char *string,
s->y = y; s->y = y;
s->len = utf8length((char *)string); s->len = utf8length((char *)string);
s->offset = offset; s->offset = offset;
s->startx = current_vp->xmargin + x * s->width / s->len; s->startx = x * s->width / s->len;
s->backward = false; s->backward = false;
LCDFN(scroll_info).lines++; LCDFN(scroll_info).lines++;
@ -1222,7 +1203,7 @@ void LCDFN(scroll_fn)(void)
pf = font_get(current_vp->font); pf = font_get(current_vp->font);
xpos = s->startx; xpos = s->startx;
ypos = current_vp->ymargin + s->y * pf->height; ypos = s->y * pf->height;
if (s->bidir) { /* scroll bidirectional */ if (s->bidir) { /* scroll bidirectional */
if (s->offset <= 0) { if (s->offset <= 0) {

View file

@ -58,8 +58,6 @@ static struct viewport default_vp =
.y = 0, .y = 0,
.width = LCD_WIDTH, .width = LCD_WIDTH,
.height = LCD_HEIGHT, .height = LCD_HEIGHT,
.xmargin = 0,
.ymargin = 0,
}; };
static struct viewport* current_vp = &default_vp; static struct viewport* current_vp = &default_vp;
@ -92,22 +90,6 @@ void lcd_update_viewport(void)
/** parameter handling **/ /** parameter handling **/
void lcd_setmargins(int x, int y)
{
current_vp->xmargin = x;
current_vp->ymargin = y;
}
int lcd_getxmargin(void)
{
return current_vp->xmargin;
}
int lcd_getymargin(void)
{
return current_vp->ymargin;
}
int lcd_getwidth(void) int lcd_getwidth(void)
{ {
return current_vp->width; return current_vp->width;
@ -484,7 +466,7 @@ void lcd_puts_scroll_offset(int x, int y, const unsigned char *string,
lcd_puts_offset(x, y, string, offset); lcd_puts_offset(x, y, string, offset);
len = utf8length(string); len = utf8length(string);
if (current_vp->width - x - current_vp->xmargin < len) if (current_vp->width - x < len)
{ {
/* prepare scroll line */ /* prepare scroll line */
char *end; char *end;
@ -498,7 +480,7 @@ void lcd_puts_scroll_offset(int x, int y, const unsigned char *string,
/* scroll bidirectional or forward only depending on the string width */ /* scroll bidirectional or forward only depending on the string width */
if (lcd_scroll_info.bidir_limit) if (lcd_scroll_info.bidir_limit)
{ {
s->bidir = s->len < (current_vp->width - current_vp->xmargin) * s->bidir = s->len < (current_vp->width) *
(100 + lcd_scroll_info.bidir_limit) / 100; (100 + lcd_scroll_info.bidir_limit) / 100;
} }
else else
@ -517,7 +499,7 @@ void lcd_puts_scroll_offset(int x, int y, const unsigned char *string,
s->vp = current_vp; s->vp = current_vp;
s->y = y; s->y = y;
s->offset = offset; s->offset = offset;
s->startx = current_vp->xmargin + x; s->startx = x;
s->backward = false; s->backward = false;
lcd_scroll_info.lines++; lcd_scroll_info.lines++;
} }
@ -547,7 +529,7 @@ void lcd_scroll_fn(void)
s->offset++; s->offset++;
xpos = s->startx; xpos = s->startx;
ypos = current_vp->ymargin + s->y; ypos = s->y;
if (s->bidir) /* scroll bidirectional */ if (s->bidir) /* scroll bidirectional */
{ {

View file

@ -30,6 +30,7 @@
#define EVENT_CLASS_DISK 0x0100 #define EVENT_CLASS_DISK 0x0100
#define EVENT_CLASS_PLAYBACK 0x0200 #define EVENT_CLASS_PLAYBACK 0x0200
#define EVENT_CLASS_BUFFERING 0x0400 #define EVENT_CLASS_BUFFERING 0x0400
#define EVENT_CLASS_GUI 0x0800
/** /**
* Because same playback events are used in mpeg.c and playback.c, define * Because same playback events are used in mpeg.c and playback.c, define

View file

@ -144,9 +144,6 @@ extern void lcd_remote_set_flip(bool yesno);
extern void lcd_remote_set_drawmode(int mode); extern void lcd_remote_set_drawmode(int mode);
extern int lcd_remote_get_drawmode(void); extern int lcd_remote_get_drawmode(void);
extern void lcd_remote_setmargins(int xmargin, int ymargin);
extern int lcd_remote_getxmargin(void);
extern int lcd_remote_getymargin(void);
extern int lcd_remote_getwidth(void); extern int lcd_remote_getwidth(void);
extern int lcd_remote_getheight(void); extern int lcd_remote_getheight(void);
extern void lcd_remote_setfont(int font); extern void lcd_remote_setfont(int font);

View file

@ -33,8 +33,6 @@ struct viewport {
int font; int font;
int drawmode; int drawmode;
#endif #endif
int xmargin; /* During the transition only - to be removed */
int ymargin; /* During the transition only - to be removed */
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
unsigned fg_pattern; unsigned fg_pattern;
unsigned bg_pattern; unsigned bg_pattern;
@ -105,9 +103,6 @@ extern void lcd_init_device(void);
extern void lcd_backlight(bool on); extern void lcd_backlight(bool on);
extern int lcd_default_contrast(void); extern int lcd_default_contrast(void);
extern void lcd_set_contrast(int val); extern void lcd_set_contrast(int val);
extern void lcd_setmargins(int xmargin, int ymargin);
extern int lcd_getxmargin(void);
extern int lcd_getymargin(void);
extern int lcd_getwidth(void); extern int lcd_getwidth(void);
extern int lcd_getheight(void); extern int lcd_getheight(void);
extern int lcd_getstringsize(const unsigned char *str, int *w, int *h); extern int lcd_getstringsize(const unsigned char *str, int *w, int *h);

View file

@ -59,7 +59,6 @@ static void displayremote(void)
lcd_remote_getstringsize("A", &w, &h); lcd_remote_getstringsize("A", &w, &h);
lines = LCD_REMOTE_HEIGHT/h; lines = LCD_REMOTE_HEIGHT/h;
columns = LCD_REMOTE_WIDTH/w; columns = LCD_REMOTE_WIDTH/w;
lcd_remote_setmargins(0, 0);
lcd_remote_clear_display(); lcd_remote_clear_display();
index = logfindex; index = logfindex;

View file

@ -38,7 +38,6 @@ bool __dbg_hw_info(void)
unsigned int freq; unsigned int freq;
uint32_t regval; uint32_t regval;
lcd_setmargins(0, 0);
lcd_clear_display(); lcd_clear_display();
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
@ -158,7 +157,6 @@ bool __dbg_ports(void)
uint32_t pmic_regs[ARRAYLEN(pmic_regset)]; uint32_t pmic_regs[ARRAYLEN(pmic_regset)];
lcd_setmargins(0, 0);
lcd_clear_display(); lcd_clear_display();
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);

View file

@ -38,7 +38,6 @@ bool __dbg_ports(void)
char buf[50]; char buf[50];
int line; int line;
lcd_setmargins(0, 0);
lcd_clear_display(); lcd_clear_display();
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);

View file

@ -40,7 +40,6 @@ bool __dbg_hw_info(void)
bool done=false; bool done=false;
char buf[100]; char buf[100];
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
lcd_clear_display(); lcd_clear_display();

View file

@ -44,7 +44,6 @@ bool __dbg_hw_info(void)
bool done=false; bool done=false;
char buf[100]; char buf[100];
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
lcd_clear_display(); lcd_clear_display();

View file

@ -48,7 +48,6 @@ bool __dbg_hw_info(void)
bool done=false; bool done=false;
char buf[100]; char buf[100];
lcd_setmargins(0, 0);
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
lcd_clear_display(); lcd_clear_display();