aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Lezcano <daniel.lezcano@linaro.org>2011-06-15 15:45:12 +0200
committerDaniel Lezcano <daniel.lezcano@linaro.org>2011-06-15 15:45:12 +0200
commit971515ac1f76bf9402b048c970263dfe3ad923c1 (patch)
tree3195e9c213e4e68882798cbdfe3dd70f06125d3f
parentb301b089be6e59da46216ce33451063a81e54206 (diff)
downloadpowerdebug-971515ac1f76bf9402b048c970263dfe3ad923c1.tar.gz
Encapsulate the display (7)
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-rw-r--r--display.c36
-rw-r--r--display.h15
2 files changed, 41 insertions, 10 deletions
diff --git a/display.c b/display.c
index d55d748..92fc02a 100644
--- a/display.c
+++ b/display.c
@@ -218,6 +218,22 @@ int display_register(int win, struct display_ops *ops)
return 0;
}
+int display_refresh(void)
+{
+ if (windata[current_win].ops && windata[current_win].ops->display)
+ return windata[current_win].ops->display();
+
+ return 0;
+}
+
+int display_select(void)
+{
+ if (windata[current_win].ops && windata[current_win].ops->select)
+ return windata[current_win].ops->select();
+
+ return 0;
+}
+
int display_next_panel(void)
{
current_win++;
@@ -241,8 +257,8 @@ int display_refresh_pad(int win)
0, 2, 0, maxy - 2, maxx);
}
-static int inline display_un_select(int win, int line,
- bool highlight, bool bold)
+static int inline display_show_un_selection(int win, int line,
+ bool highlight, bool bold)
{
if (mvwchgat(windata[win].pad, line, 0, -1,
highlight ? WA_STANDOUT :
@@ -252,14 +268,14 @@ static int inline display_un_select(int win, int line,
return display_refresh_pad(win);
}
-int display_select(int win, int line)
+int display_show_selection(int win, int line)
{
- return display_un_select(win, line, true, false);
+ return display_show_un_selection(win, line, true, false);
}
-int display_unselect(int win, int line, bool bold)
+int display_show_unselection(int win, int line, bool bold)
{
- return display_un_select(win, line, false, bold);
+ return display_show_un_selection(win, line, false, bold);
}
void *display_get_row_data(int win)
@@ -326,13 +342,13 @@ int display_next_line(void)
if (cursor >= nrdata)
return cursor;
- display_unselect(current_win, cursor, rowdata[cursor].attr);
+ display_show_unselection(current_win, cursor, rowdata[cursor].attr);
if (cursor < nrdata - 1) {
if (cursor >= (maxy - 4 + scrolling))
scrolling++;
cursor++;
}
- display_select(current_win, cursor);
+ display_show_selection(current_win, cursor);
windata[current_win].scrolling = scrolling;
windata[current_win].cursor = cursor;
@@ -350,13 +366,13 @@ int display_prev_line(void)
if (cursor >= nrdata)
return cursor;
- display_unselect(current_win, cursor, rowdata[cursor].attr);
+ display_show_unselection(current_win, cursor, rowdata[cursor].attr);
if (cursor > 0) {
if (cursor <= scrolling)
scrolling--;
cursor--;
}
- display_select(current_win, cursor);
+ display_show_selection(current_win, cursor);
windata[current_win].scrolling = scrolling;
windata[current_win].cursor = cursor;
diff --git a/display.h b/display.h
index 1222b44..7e6b199 100644
--- a/display.h
+++ b/display.h
@@ -13,11 +13,20 @@
* - initial API and implementation
*******************************************************************************/
+#define TOTAL_FEATURE_WINS 3 /* Regulator, Clock and Sensor (for now) */
+
struct display_ops {
int (*display)(void);
int (*select)(void);
};
+extern int display_print_line(int window, int line, char *str,
+ int bold, void *data);
+
+extern int display_refresh_pad(int window);
+extern int display_reset_cursor(int window);
+extern void *display_get_row_data(int window);
+
extern int display_init(int wdefault);
extern int display_register(int win, struct display_ops *ops);
extern int display_next_panel(void);
@@ -25,3 +34,9 @@ extern int display_prev_panel(void);
extern int display_next_line(void);
extern int display_prev_line(void);
extern int display_refresh(void);
+extern int display_select(void);
+
+/* FIXME */
+extern void print_sensor_header(void);
+extern void print_clock_header(void);
+extern void print_regulator_header(void);