- Added some icons.
- Made sure all icon and vbar functions are not the old API functions. - Removed heartbeat functions from drivers that did standard heartbeat.
This commit is contained in:
@@ -460,6 +460,12 @@ driver_alt_icon( Driver * drv, int x, int y, int icon )
|
||||
case ICON_ARROW_DOWN: ch1 = 'v'; break;
|
||||
case ICON_ARROW_LEFT: ch1 = '<'; break;
|
||||
case ICON_ARROW_RIGHT: ch1 = '>'; break;
|
||||
case ICON_CHECKBOX_OFF: ch1 = 'N'; break;
|
||||
case ICON_CHECKBOX_ON: ch1 = 'Y'; break;
|
||||
case ICON_CHECKBOX_GRAY: ch1 = 'o'; break;
|
||||
case ICON_SELECTOR_AT_LEFT: ch1 = '>'; break;
|
||||
case ICON_SELECTOR_AT_RIGHT: ch1 = '<'; break;
|
||||
case ICON_ELLIPSIS: ch1 = '_'; break;
|
||||
case ICON_STOP: ch1 = '['; ch2 = ']'; break;
|
||||
case ICON_PAUSE: ch1 = '|'; ch2 = '|'; break;
|
||||
case ICON_PLAY: ch1 = '>'; ch2 = ' '; break;
|
||||
|
||||
+10
-3
@@ -297,11 +297,18 @@ drivers_icon( int x, int y, int icon )
|
||||
report( RPT_INFO, "drivers_icon( x=%d, y=%d, icon=ICON_%s )", x, y, widget_icon_to_iconname (icon) );
|
||||
|
||||
ForAllDrivers(drv) {
|
||||
if( drv->icon )
|
||||
drv->icon( drv, x, y, icon );
|
||||
else
|
||||
/* Does the driver have the icon function ? */
|
||||
if( drv->icon ) {
|
||||
/* Try driver call */
|
||||
if (drv->icon( drv, x, y, icon ) == -1) {
|
||||
/* do alternative call if driver's function does not know the icon */
|
||||
driver_alt_icon( drv, x, y, icon );
|
||||
}
|
||||
} else {
|
||||
/* Also do alternative call if the driver does not have icon function */
|
||||
driver_alt_icon( drv, x, y, icon );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
+3
-42
@@ -598,17 +598,6 @@ CFontz_hbar (Driver * drvthis, int x, int y, int len, int promille, int options)
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Writes a big number.
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
CFontz_num (Driver * drvthis, int x, int num)
|
||||
{
|
||||
char out[5];
|
||||
snprintf (out, sizeof(out), "%c%c%c%c", 28, 0, x-1, num+48);
|
||||
write (fd, out, 4);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Sets a custom character from 0-7...
|
||||
//
|
||||
@@ -644,7 +633,7 @@ CFontz_set_char (Driver * drvthis, int n, char *dat)
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Places an icon on screen
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
MODULE_EXPORT int
|
||||
CFontz_icon (Driver * drvthis, int x, int y, int icon)
|
||||
{
|
||||
char icons[3][6 * 8] = {
|
||||
@@ -699,9 +688,9 @@ CFontz_icon (Driver * drvthis, int x, int y, int icon)
|
||||
CFontz_chr( drvthis, x, y, 0 );
|
||||
break;
|
||||
default:
|
||||
report( RPT_WARNING, "CFontz_icon: unknown or unsupported icon: %d", icon );
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
@@ -741,31 +730,3 @@ CFontz_string (Driver * drvthis, int x, int y, char string[])
|
||||
framebuf[(y * width) + x + i] = string[i];
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
// Does the heartbeat...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
CFontz_heartbeat (Driver *drvthis, int type)
|
||||
{
|
||||
static int timer = 0;
|
||||
int whichIcon;
|
||||
static int saved_type = HEARTBEAT_ON;
|
||||
|
||||
if (type)
|
||||
saved_type = type;
|
||||
|
||||
if (type == HEARTBEAT_ON) {
|
||||
/* Set this to pulsate like a real heart beat... */
|
||||
if( ((timer + 4) & 5))
|
||||
whichIcon = ICON_HEART_OPEN;
|
||||
else
|
||||
whichIcon = ICON_HEART_FILLED;
|
||||
|
||||
/* place the icon */
|
||||
CFontz_icon (drvthis, width, 1, whichIcon);
|
||||
}
|
||||
|
||||
timer++;
|
||||
timer &= 0x0f;
|
||||
}
|
||||
|
||||
@@ -24,9 +24,7 @@ MODULE_EXPORT void CFontz_chr (Driver * drvthis, int x, int y, char c);
|
||||
|
||||
MODULE_EXPORT void CFontz_vbar (Driver * drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void CFontz_hbar (Driver * drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void CFontz_num (Driver * drvthis, int x, int num);
|
||||
MODULE_EXPORT void CFontz_heartbeat (Driver *drvthis, int type);
|
||||
MODULE_EXPORT void CFontz_icon(Driver * drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT int CFontz_icon(Driver * drvthis, int x, int y, int icon);
|
||||
|
||||
MODULE_EXPORT void CFontz_set_char (Driver * drvthis, int n, char *dat);
|
||||
|
||||
|
||||
@@ -681,7 +681,7 @@ send_bytes_message(fd, 9, CF633_Set_LCD_Special_Character_Data , out);
|
||||
/*
|
||||
* Places an icon on screen
|
||||
*/
|
||||
MODULE_EXPORT void
|
||||
MODULE_EXPORT int
|
||||
CFontz633_icon (Driver * drvthis, int x, int y, int icon)
|
||||
{
|
||||
char icons[3][6 * 8] = {
|
||||
@@ -733,8 +733,9 @@ CFontz633_icon (Driver * drvthis, int x, int y, int icon)
|
||||
CFontz633_chr( drvthis, x, y, 0 );
|
||||
break;
|
||||
default:
|
||||
report( RPT_WARNING, "CFontz633_icon: unknown or unsupported icon: %d", icon );
|
||||
return -1; /* Let the core do other icons */
|
||||
}
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
@@ -777,34 +778,3 @@ CFontz633_string (Driver * drvthis, int x, int y, char string[])
|
||||
framebuf[(y * width) + x + i] = string[i];
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Does the heartbeat...
|
||||
*/
|
||||
MODULE_EXPORT void
|
||||
CFontz633_heartbeat (Driver *drvthis, int type)
|
||||
{
|
||||
static int timer = 0;
|
||||
static int saved_type = HEARTBEAT_ON;
|
||||
int whichIcon;
|
||||
|
||||
if (type)
|
||||
saved_type = type;
|
||||
|
||||
if (type == HEARTBEAT_ON) {
|
||||
/* Set this to pulsate like a real heart beat... */
|
||||
if( ((timer + 4) & 5))
|
||||
whichIcon = ICON_HEART_OPEN;
|
||||
else
|
||||
whichIcon = ICON_HEART_FILLED;
|
||||
|
||||
/* place the icon */
|
||||
CFontz633_icon (drvthis, width, 1, whichIcon);
|
||||
}
|
||||
|
||||
timer++;
|
||||
timer &= 0x0f;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -24,8 +24,7 @@ MODULE_EXPORT void CFontz633_chr (Driver * drvthis, int x, int y, char c);
|
||||
MODULE_EXPORT void CFontz633_vbar (Driver * drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void CFontz633_hbar (Driver * drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void CFontz633_num (Driver * drvthis, int x, int num);
|
||||
MODULE_EXPORT void CFontz633_heartbeat (Driver *drvthis, int type);
|
||||
MODULE_EXPORT void CFontz633_icon(Driver * drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT int CFontz633_icon(Driver * drvthis, int x, int y, int icon);
|
||||
|
||||
MODULE_EXPORT void CFontz633_set_char (Driver * drvthis, int n, char *dat);
|
||||
|
||||
|
||||
+8
-28
@@ -192,7 +192,6 @@ typedef struct p {
|
||||
int contrast; /* static data from set/get_contrast */
|
||||
int backlightenabled;
|
||||
MtxOrb_type_type MtxOrb_type;
|
||||
int timer; /* static data from MtxOrb_heartbeat */
|
||||
char pause_key;
|
||||
char back_key;
|
||||
char forward_key;
|
||||
@@ -278,7 +277,6 @@ MtxOrb_init (Driver *drvthis, char *args)
|
||||
p->backlightenabled = DEFAULT_BACKLIGHT;
|
||||
p->old = NULL;
|
||||
p->MtxOrb_type = MTXORB_LKD; /* Assume it's an LCD w/keypad */
|
||||
p->timer = 0; /* static data from MtxOrb_heartbeat */
|
||||
p->pause_key = MTXORB_DEFAULT_PAUSE_KEY;
|
||||
p->back_key = MTXORB_DEFAULT_BACK_KEY;
|
||||
p->forward_key = MTXORB_DEFAULT_FORWARD_KEY;
|
||||
@@ -1189,10 +1187,15 @@ MtxOrb_set_char (Driver *drvthis, int n, char *dat)
|
||||
|
||||
/* TODO: This is not yet my idea of icon frame buffer but it work well.
|
||||
*/
|
||||
MODULE_EXPORT void
|
||||
MODULE_EXPORT int
|
||||
MtxOrb_icon (Driver *drvthis, int x, int y, int icon)
|
||||
{
|
||||
MtxOrb_chr (drvthis, x, y, MtxOrb_ask_bar (drvthis, icon));
|
||||
|
||||
return 0;
|
||||
/* We return 0, however many icons are not supported
|
||||
* TODO...
|
||||
*/
|
||||
}
|
||||
|
||||
/* TODO: Recover the code for I2C connectivity to MtxOrb
|
||||
@@ -1204,6 +1207,8 @@ MtxOrb_icon (Driver *drvthis, int x, int y, int icon)
|
||||
* (A-Z) on success, 0 on failure...
|
||||
*/
|
||||
|
||||
/* TODO implement for new API call (get_key) that returns a string */
|
||||
|
||||
MODULE_EXPORT char
|
||||
MtxOrb_getkey (Driver *drvthis)
|
||||
{
|
||||
@@ -1345,31 +1350,6 @@ MtxOrb_ask_bar (Driver *drvthis, int type)
|
||||
return (pos);
|
||||
}
|
||||
|
||||
/******************************
|
||||
* Does the heartbeat...
|
||||
*/
|
||||
MODULE_EXPORT void
|
||||
MtxOrb_heartbeat (Driver *drvthis, int type)
|
||||
{
|
||||
int whichIcon;
|
||||
|
||||
PrivateData * p = drvthis->private_data;
|
||||
|
||||
if (type == HEARTBEAT_ON) {
|
||||
/* Set this to pulsate like a real heart beat... */
|
||||
whichIcon = (! ((p->timer + 4) & 5));
|
||||
|
||||
/* Ask for the right heartbeat icon... */
|
||||
MtxOrb_icon (drvthis, p->width, 1, whichIcon);
|
||||
|
||||
/* change display... */
|
||||
MtxOrb_flush (drvthis);
|
||||
}
|
||||
|
||||
p->timer++;
|
||||
p->timer &= 0x0f;
|
||||
}
|
||||
|
||||
/******************************
|
||||
* Sets up a well known character for use.
|
||||
*/
|
||||
|
||||
@@ -12,7 +12,6 @@ MODULE_EXPORT void MtxOrb_flush (Driver *drvthis);
|
||||
MODULE_EXPORT void MtxOrb_string (Driver *drvthis, int x, int y, char *string);
|
||||
MODULE_EXPORT void MtxOrb_chr (Driver *drvthis, int x, int y, char c);
|
||||
|
||||
MODULE_EXPORT void MtxOrb_heartbeat (Driver *drvthis, int type);
|
||||
MODULE_EXPORT void MtxOrb_set_char (Driver *drvthis, int n, char *dat);
|
||||
|
||||
MODULE_EXPORT int MtxOrb_get_contrast (Driver *drvthis);
|
||||
@@ -25,7 +24,7 @@ MODULE_EXPORT char * MtxOrb_get_info (Driver *drvthis);
|
||||
|
||||
MODULE_EXPORT void MtxOrb_num (Driver *drvthis, int x, int num);
|
||||
|
||||
MODULE_EXPORT void MtxOrb_icon (Driver *drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT int MtxOrb_icon (Driver *drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT void MtxOrb_vbar (Driver * drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void MtxOrb_hbar (Driver * drvthis, int x, int y, int len, int promille, int options);
|
||||
|
||||
|
||||
@@ -780,14 +780,17 @@ bayrad_hbar(Driver * drvthis, int x, int y, int len, int promille, int options)
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Places an icon on screen
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
MODULE_EXPORT int
|
||||
bayrad_icon(Driver * drvthis, int x, int y, int icon)
|
||||
{
|
||||
switch( icon ) {
|
||||
case ICON_BLOCK_FILLED:
|
||||
bayrad_chr( drvthis, x, y, 0xFF );
|
||||
break;
|
||||
default:
|
||||
return -1; /* Let the core do other icons */
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ MODULE_EXPORT void bayrad_chr(Driver * drvthis, int x, int y, char c);
|
||||
|
||||
MODULE_EXPORT void bayrad_vbar(Driver * drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void bayrad_hbar(Driver * drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void bayrad_icon(Driver * drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT int bayrad_icon(Driver * drvthis, int x, int y, int icon);
|
||||
|
||||
MODULE_EXPORT void bayrad_set_char(Driver * drvthis, int n, char *dat);
|
||||
|
||||
|
||||
@@ -540,7 +540,7 @@ curses_drv_hbar (Driver *drvthis, int x, int y, int len, int promille, int optio
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Sets character 0 to an icon...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
MODULE_EXPORT int
|
||||
curses_drv_icon (Driver *drvthis, int x, int y, int icon)
|
||||
{
|
||||
char ch1 = '?';
|
||||
@@ -550,19 +550,11 @@ curses_drv_icon (Driver *drvthis, int x, int y, int icon)
|
||||
case ICON_BLOCK_FILLED: ch1 = ACS_BLOCK; break;
|
||||
case ICON_HEART_OPEN: ch1 = '-'; break;
|
||||
case ICON_HEART_FILLED: ch1 = '+'; break;
|
||||
case ICON_ARROW_UP: ch1 = '^'; break; /* or does curses do real arrows ? */
|
||||
case ICON_ARROW_DOWN: ch1 = 'v'; break;
|
||||
case ICON_ARROW_LEFT: ch1 = '<'; break;
|
||||
case ICON_ARROW_RIGHT: ch1 = '>'; break;
|
||||
case ICON_STOP: ch1 = '['; ch2 = ']'; break;
|
||||
case ICON_PAUSE: ch1 = '|'; ch2 = '|'; break;
|
||||
case ICON_PLAY: ch1 = '>'; ch2 = ' '; break;
|
||||
case ICON_PLAYR: ch1 = '<'; ch2 = ' '; break;
|
||||
case ICON_FF: ch1 = '>'; ch2 = '>'; break;
|
||||
case ICON_FR: ch1 = '<'; ch2 = '<'; break;
|
||||
case ICON_NEXT: ch1 = '>'; ch2 = '|'; break;
|
||||
case ICON_PREV: ch1 = '|'; ch2 = '<'; break;
|
||||
case ICON_REC: ch1 = '('; ch2 = ')'; break;
|
||||
case ICON_ARROW_UP: ch1 = ACS_UARROW; break;
|
||||
case ICON_ARROW_DOWN: ch1 = ACS_DARROW; break;
|
||||
case ICON_ARROW_LEFT: ch1 = ACS_LARROW; break;
|
||||
case ICON_ARROW_RIGHT: ch1 = ACS_RARROW; break;
|
||||
default: return -1; /* Let the core do it */
|
||||
}
|
||||
curses_drv_chr( drvthis, x, y, ch1);
|
||||
if (ch2) {
|
||||
@@ -572,6 +564,7 @@ curses_drv_icon (Driver *drvthis, int x, int y, int icon)
|
||||
/* There was something with placing PAD
|
||||
* What wasthat ever for ?
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -16,7 +16,7 @@ MODULE_EXPORT void curses_drv_vbar (Driver *drvthis, int x, int y, int len, int
|
||||
MODULE_EXPORT void curses_drv_hbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void curses_drv_num (Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void curses_drv_heartbeat (Driver *drvthis, int type);
|
||||
MODULE_EXPORT void curses_drv_icon (Driver *drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT int curses_drv_icon (Driver *drvthis, int x, int y, int icon);
|
||||
|
||||
MODULE_EXPORT void curses_drv_backlight (Driver *drvthis, int on);
|
||||
|
||||
|
||||
@@ -238,7 +238,7 @@ debug_hbar (Driver *drvthis, int x, int y, int len, int promille, int options)
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Sets character 0 to an icon...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
MODULE_EXPORT int
|
||||
debug_icon (Driver *drvthis, int x, int y, int icon)
|
||||
{
|
||||
report (RPT_INFO, "icon(%i,%i,%i)", x, y, icon);
|
||||
|
||||
@@ -15,7 +15,7 @@ MODULE_EXPORT void debug_chr (Driver *drvthis, int x, int y, char c);
|
||||
MODULE_EXPORT void debug_vbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void debug_hbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void debug_num (Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void debug_icon (Driver *drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT int debug_icon (Driver *drvthis, int x, int y, int icon);
|
||||
|
||||
MODULE_EXPORT void debug_set_char (Driver *drvthis, int n, char *dat);
|
||||
|
||||
|
||||
+10
-4
@@ -502,7 +502,7 @@ glk_set_char(Driver *drvthis, int n, char *dat)
|
||||
// Draws a vertical bar, from the bottom of the screen up.
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
glk_vbar(Driver *drvthis, int x, int len)
|
||||
glk_old_vbar(Driver *drvthis, int x, int len)
|
||||
{
|
||||
int y = height ;
|
||||
|
||||
@@ -533,7 +533,7 @@ glk_vbar(Driver *drvthis, int x, int len)
|
||||
// Draws a horizontal bar to the right.
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
glk_hbar(Driver *drvthis, int x, int y, int len)
|
||||
glk_old_hbar(Driver *drvthis, int x, int y, int len)
|
||||
{
|
||||
// printf( "glk_hbar( %d, %d, %d )\n", x, y, len );
|
||||
while( len > cellwidth ) {
|
||||
@@ -561,8 +561,11 @@ glk_hbar(Driver *drvthis, int x, int y, int len)
|
||||
// Sets character 0 to an icon...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
glk_icon(Driver *drvthis, int which, char dest)
|
||||
glk_old_icon(Driver *drvthis, int which, int dest)
|
||||
{
|
||||
/* TODO IMPLEMENTATION OF NEW API */
|
||||
/* any volonteers ? */
|
||||
|
||||
unsigned char old, new ;
|
||||
unsigned char * p ;
|
||||
unsigned char * q ;
|
||||
@@ -610,8 +613,11 @@ glk_icon(Driver *drvthis, int which, char dest)
|
||||
// Return 0 for "nothing available".
|
||||
//
|
||||
MODULE_EXPORT char
|
||||
glk_getkey(Driver *drvthis)
|
||||
glk_old_getkey(Driver *drvthis)
|
||||
{
|
||||
/* NOTE THAT THIS CODE IS NOT USED IN THE NEW API */
|
||||
/* It uses get_key instead, returning a string */
|
||||
|
||||
int c ;
|
||||
static int key = -1 ;
|
||||
static struct timeval lastkey ;
|
||||
|
||||
@@ -12,10 +12,10 @@ MODULE_EXPORT void glk_flush(Driver *drvthis);
|
||||
MODULE_EXPORT void glk_string(Driver *drvthis, int x, int y, char string[]);
|
||||
MODULE_EXPORT void glk_chr(Driver *drvthis, int x, int y, char c);
|
||||
|
||||
MODULE_EXPORT void glk_vbar(Driver *drvthis, int x, int len);
|
||||
MODULE_EXPORT void glk_hbar(Driver *drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void glk_old_vbar(Driver *drvthis, int x, int len);
|
||||
MODULE_EXPORT void glk_old_hbar(Driver *drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void glk_num(Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void glk_icon(Driver *drvthis, int which, char dest);
|
||||
MODULE_EXPORT void glk_old_icon(Driver *drvthis, int which, int dest);
|
||||
|
||||
MODULE_EXPORT void glk_set_char(Driver *drvthis, int n, char *dat);
|
||||
|
||||
|
||||
+75
-33
@@ -921,36 +921,6 @@ HD44780_num (Driver *drvthis, int x, int num)
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
// Does the heartbeat...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
HD44780_heartbeat (Driver *drvthis, int type)
|
||||
{
|
||||
PrivateData *p = (PrivateData *) drvthis->private_data;
|
||||
|
||||
static int timer = 0;
|
||||
int whichIcon;
|
||||
static int saved_type = HEARTBEAT_ON;
|
||||
|
||||
if (type)
|
||||
saved_type = type;
|
||||
|
||||
if (type == HEARTBEAT_ON) {
|
||||
/* Set this to pulsate like a real heart beat... */
|
||||
if( ((timer + 4) & 5))
|
||||
whichIcon = ICON_HEART_OPEN;
|
||||
else
|
||||
whichIcon = ICON_HEART_FILLED;
|
||||
|
||||
/* place the icon */
|
||||
HD44780_icon (drvthis, p->width, 1, whichIcon);
|
||||
}
|
||||
|
||||
timer++;
|
||||
timer &= 0x0f;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Sets a custom character from 0-7...
|
||||
//
|
||||
@@ -986,7 +956,7 @@ HD44780_set_char (Driver *drvthis, int n, char *dat)
|
||||
/////////////////////////////////////////////////////////////
|
||||
// Set default icon into a userdef char
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
MODULE_EXPORT int
|
||||
HD44780_icon (Driver *drvthis, int x, int y, int icon)
|
||||
{
|
||||
char heart_open[] = {
|
||||
@@ -998,7 +968,6 @@ HD44780_icon (Driver *drvthis, int x, int y, int icon)
|
||||
1, 0, 0, 0, 1,
|
||||
1, 1, 0, 1, 1,
|
||||
1, 1, 1, 1, 1 };
|
||||
|
||||
char heart_filled[] = {
|
||||
1, 1, 1, 1, 1,
|
||||
1, 0, 1, 0, 1,
|
||||
@@ -1008,7 +977,53 @@ HD44780_icon (Driver *drvthis, int x, int y, int icon)
|
||||
1, 0, 1, 0, 1,
|
||||
1, 1, 0, 1, 1,
|
||||
1, 1, 1, 1, 1 };
|
||||
char arrow_up[] = {
|
||||
0, 0, 1, 0, 0,
|
||||
0, 1, 1, 1, 0,
|
||||
1, 0, 1, 0, 1,
|
||||
0, 0, 1, 0, 0,
|
||||
0, 0, 1, 0, 0,
|
||||
0, 0, 1, 0, 0,
|
||||
0, 0, 1, 0, 0,
|
||||
0, 0, 0, 0, 0 };
|
||||
char arrow_down[] = {
|
||||
0, 0, 1, 0, 0,
|
||||
0, 0, 1, 0, 0,
|
||||
0, 0, 1, 0, 0,
|
||||
0, 0, 1, 0, 0,
|
||||
1, 0, 1, 0, 1,
|
||||
0, 1, 1, 1, 0,
|
||||
0, 0, 1, 0, 0,
|
||||
0, 0, 0, 0, 0 };
|
||||
char checkbox_off[] = {
|
||||
0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
1, 1, 1, 1, 1,
|
||||
1, 0, 0, 0, 1,
|
||||
1, 0, 0, 0, 1,
|
||||
1, 0, 0, 0, 1,
|
||||
1, 1, 1, 1, 1,
|
||||
0, 0, 0, 0, 0 };
|
||||
char checkbox_on[] = {
|
||||
0, 0, 1, 0, 0,
|
||||
0, 0, 1, 0, 0,
|
||||
1, 1, 1, 0, 1,
|
||||
1, 0, 1, 1, 0,
|
||||
1, 0, 1, 0, 1,
|
||||
1, 0, 0, 0, 1,
|
||||
1, 1, 1, 1, 1,
|
||||
0, 0, 0, 0, 0 };
|
||||
char checkbox_gray[] = {
|
||||
0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
1, 1, 1, 1, 1,
|
||||
1, 0, 1, 0, 1,
|
||||
1, 1, 0, 1, 1,
|
||||
1, 0, 1, 0, 1,
|
||||
1, 1, 1, 1, 1,
|
||||
0, 0, 0, 0, 0 };
|
||||
|
||||
/* Yes I know, this is a VERY BAD implementation */
|
||||
switch( icon ) {
|
||||
case ICON_BLOCK_FILLED:
|
||||
HD44780_chr( drvthis, x, y, 255 );
|
||||
@@ -1021,9 +1036,36 @@ HD44780_icon (Driver *drvthis, int x, int y, int icon)
|
||||
HD44780_set_char( drvthis, 0, heart_open );
|
||||
HD44780_chr( drvthis, x, y, 0 );
|
||||
break;
|
||||
case ICON_ARROW_UP:
|
||||
HD44780_set_char( drvthis, 1, arrow_up );
|
||||
HD44780_chr( drvthis, x, y, 1 );
|
||||
break;
|
||||
case ICON_ARROW_DOWN:
|
||||
HD44780_set_char( drvthis, 2, arrow_down );
|
||||
HD44780_chr( drvthis, x, y, 2 );
|
||||
break;
|
||||
case ICON_ARROW_LEFT:
|
||||
HD44780_chr( drvthis, x, y, 0x7F );
|
||||
break;
|
||||
case ICON_ARROW_RIGHT:
|
||||
HD44780_chr( drvthis, x, y, 0x7E );
|
||||
break;
|
||||
case ICON_CHECKBOX_OFF:
|
||||
HD44780_set_char( drvthis, 3, checkbox_off );
|
||||
HD44780_chr( drvthis, x, y, 3 );
|
||||
break;
|
||||
case ICON_CHECKBOX_ON:
|
||||
HD44780_set_char( drvthis, 4, checkbox_on );
|
||||
HD44780_chr( drvthis, x, y, 4 );
|
||||
break;
|
||||
case ICON_CHECKBOX_GRAY:
|
||||
HD44780_set_char( drvthis, 5, checkbox_gray );
|
||||
HD44780_chr( drvthis, x, y, 5 );
|
||||
break;
|
||||
default:
|
||||
report( RPT_WARNING, "HD44780_icon: unknown or unsupported icon: %d", icon );
|
||||
return -1; /* Let the core do other icons */
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -30,8 +30,7 @@ MODULE_EXPORT void HD44780_chr (Driver *drvthis, int x, int y, char ch);
|
||||
MODULE_EXPORT void HD44780_vbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void HD44780_hbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void HD44780_num (Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void HD44780_heartbeat (Driver *drvthis, int type);
|
||||
MODULE_EXPORT void HD44780_icon (Driver *drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT int HD44780_icon (Driver *drvthis, int x, int y, int icon);
|
||||
|
||||
MODULE_EXPORT void HD44780_set_char (Driver *drvthis, int n, char *dat);
|
||||
|
||||
|
||||
@@ -353,7 +353,7 @@ icp_a106_num (Driver *drvthis, int x, int num)
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Sets character 0 to an icon...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
MODULE_EXPORT int
|
||||
icp_a106_icon (Driver *drvthis, int x, int y, int icon)
|
||||
{
|
||||
switch( icon )
|
||||
@@ -366,16 +366,7 @@ icp_a106_icon (Driver *drvthis, int x, int y, int icon)
|
||||
case ICON_HEART_OPEN:
|
||||
break;
|
||||
default:
|
||||
report( RPT_WARNING, "icp_a106_icon: unknown or unsupported icon: %d", icon );
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
// Does the heartbeat...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
icp_a106_heartbeat (Driver *drvthis, int type)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -44,8 +44,7 @@ MODULE_EXPORT void icp_a106_chr (Driver *drvthis, int x, int y, char ch);
|
||||
MODULE_EXPORT void icp_a106_vbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void icp_a106_hbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void icp_a106_num (Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void icp_a106_heartbeat (Driver *drvthis, int type);
|
||||
MODULE_EXPORT void icp_a106_icon (Driver *drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT int icp_a106_icon (Driver *drvthis, int x, int y, int icon);
|
||||
|
||||
#define DEFAULT_DEVICE "/dev/lcd"
|
||||
|
||||
|
||||
+24
-25
@@ -601,45 +601,44 @@ LB216_set_char(Driver * drvthis, int n, char *dat)
|
||||
}
|
||||
}
|
||||
|
||||
MODULE_EXPORT void
|
||||
LB216_icon(Driver * drvthis, int which, char dest)
|
||||
MODULE_EXPORT int
|
||||
LB216_icon(Driver * drvthis, int x, int y, int icon)
|
||||
{
|
||||
char icons[3][8*8] = {
|
||||
{
|
||||
1,1,1,1,1, // Empty Heart
|
||||
static char heart_open[] = {
|
||||
1, 1, 1, 1, 1,
|
||||
1, 0, 1, 0, 1,
|
||||
0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 1,
|
||||
1, 1, 0, 1, 1,
|
||||
1,1,1,1,1,
|
||||
},
|
||||
1, 1, 1, 1, 1 };
|
||||
|
||||
{
|
||||
1,1,1,1,1, // Filled Heart
|
||||
static char heart_filled[] = {
|
||||
1, 1, 1, 1, 1,
|
||||
1, 0, 1, 0, 1,
|
||||
0, 1, 0, 1, 0,
|
||||
0, 1, 1, 1, 0,
|
||||
0, 1, 1, 1, 0,
|
||||
1, 0, 1, 0, 1,
|
||||
1, 1, 0, 1, 1,
|
||||
1,1,1,1,1,
|
||||
},
|
||||
1, 1, 1, 1, 1 };
|
||||
|
||||
switch( icon )
|
||||
{
|
||||
0,0,0,0,0, // Ellipsis
|
||||
0,0,0,0,0,
|
||||
0,0,0,0,0,
|
||||
0,0,0,0,0,
|
||||
0,0,0,0,0,
|
||||
0,0,0,0,0,
|
||||
0,0,0,0,0,
|
||||
1,0,1,0,1,
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
if(custom==bign) custom=beat;
|
||||
LB216_set_char(drvthis, dest, &icons[which][0]);
|
||||
case ICON_BLOCK_FILLED:
|
||||
LB216_chr( drvthis, x, y, 255 );
|
||||
break;
|
||||
case ICON_HEART_FILLED:
|
||||
LB216_set_char( drvthis, 0, heart_filled );
|
||||
LB216_chr( drvthis, x, y, 0 );
|
||||
break;
|
||||
case ICON_HEART_OPEN:
|
||||
LB216_set_char( drvthis, 0, heart_open );
|
||||
LB216_chr( drvthis, x, y, 0 );
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -12,10 +12,10 @@ MODULE_EXPORT void LB216_flush(Driver * drvthis);
|
||||
MODULE_EXPORT void LB216_string (Driver * drvthis, int x, int y, char string[]);
|
||||
MODULE_EXPORT void LB216_chr(Driver * drvthis, int x, int y, char c) ;
|
||||
|
||||
MODULE_EXPORT void LB216_vbar(Driver * drvthis, int x, int len);
|
||||
MODULE_EXPORT void LB216_hbar(Driver * drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void LB216_old_vbar(Driver * drvthis, int x, int len);
|
||||
MODULE_EXPORT void LB216_old_hbar(Driver * drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void LB216_num(Driver * drvthis, int x, int num);
|
||||
MODULE_EXPORT void LB216_icon(Driver * drvthis, int which, char dest);
|
||||
MODULE_EXPORT int LB216_icon(Driver * drvthis, int x, int y, int icon);
|
||||
|
||||
MODULE_EXPORT void LB216_set_char(Driver * drvthis, int n, char *dat);
|
||||
|
||||
|
||||
+32
-9
@@ -14,6 +14,10 @@
|
||||
* There should be no further interaction between driver and server core
|
||||
* other that via this API.
|
||||
*
|
||||
* Driver writer notes
|
||||
* ~~~~~~~~~~~~~~~~~~~
|
||||
* See documentation in the docs/lcdproc-devel directory.
|
||||
*
|
||||
* DO NOT MIX DRIVER ALLOCATED AND CORE ALLOCATED MEMORY.
|
||||
* With this I mean that the server core should NEVER WRITE in memory
|
||||
* allocated by the driver, and vice versa. Also the driver resp. core
|
||||
@@ -42,6 +46,9 @@
|
||||
#define BACKLIGHT_WARNING 2
|
||||
#define BACKLIGHT_RED_ALERT 3
|
||||
|
||||
/* Icons. If a driver does not support an icon, it can return -1 from the
|
||||
* icon function, and let the core place a replacement character.
|
||||
*/
|
||||
/* Icons below are one character wide */
|
||||
#define ICON_BLOCK_FILLED 0x100
|
||||
#define ICON_HEART_OPEN 0x108
|
||||
@@ -50,6 +57,12 @@
|
||||
#define ICON_ARROW_DOWN 0x111
|
||||
#define ICON_ARROW_LEFT 0x112
|
||||
#define ICON_ARROW_RIGHT 0x113
|
||||
#define ICON_CHECKBOX_OFF 0x120
|
||||
#define ICON_CHECKBOX_ON 0x121
|
||||
#define ICON_CHECKBOX_GRAY 0x122
|
||||
#define ICON_SELECTOR_AT_LEFT 0x128
|
||||
#define ICON_SELECTOR_AT_RIGHT 0x129
|
||||
#define ICON_ELLIPSIS 0x130
|
||||
|
||||
/* Icons below are two characters wide */
|
||||
#define ICON_STOP 0x200 /* should look like [] */
|
||||
@@ -62,17 +75,27 @@
|
||||
#define ICON_PREV 0x207 /* should look like |< */
|
||||
#define ICON_REC 0x208 /* should look like () */
|
||||
|
||||
/* Heartbeat data, taken from render.h */
|
||||
/* ??? What does OPEN mean here ? */
|
||||
/* Icon numbers from 0 to 0x0FF could be used for client defined chars.
|
||||
* However this is not implemented and there are no crystalized ideas
|
||||
* about how to do it. get_free_chars and set_char should be used, but a
|
||||
* lot of things in that area might need to be changed.
|
||||
*/
|
||||
|
||||
/* Heartbeat data */
|
||||
#define HEARTBEAT_OFF 0
|
||||
#define HEARTBEAT_ON 1
|
||||
#define HEARTBEAT_OPEN 2
|
||||
|
||||
/* Patterns for hbar / vbar */
|
||||
#define BAR_POS 0x001 /* default */
|
||||
#define BAR_NEG 0x002
|
||||
#define BAR_POS_AND_NEG 0x003
|
||||
#define BAR_PATTERN_FILLED 0x000
|
||||
/* Patterns for hbar / vbar, mostly (if not all) UNIMPLEMENTED */
|
||||
#define BAR_POS 0x001 /* default
|
||||
Promilles allowed: 0 to 1000
|
||||
The zero-point is at the left or bottom */
|
||||
#define BAR_NEG 0x002 /* the bar grows in negative direction
|
||||
Promilles allowed: -1000 to 0
|
||||
The zero-point is at the left or top */
|
||||
#define BAR_POS_AND_NEG 0x003 /* the bars can grow in both directions
|
||||
Promilles allowed: -1000 to 1000
|
||||
The zero-point is in the center */
|
||||
#define BAR_PATTERN_FILLED 0x000 /* default */
|
||||
#define BAR_PATTERN_OPEN 0x010
|
||||
#define BAR_PATTERN_STRIPED 0x020
|
||||
#define BAR_WITH_PERCENTAGE 0x100
|
||||
@@ -122,7 +145,7 @@ typedef struct lcd_logical_driver {
|
||||
void (*hbar) (struct lcd_logical_driver* drvthis, int x, int y, int len, int promille, int pattern);
|
||||
void (*num) (struct lcd_logical_driver* drvthis, int x, int num);
|
||||
void (*heartbeat) (struct lcd_logical_driver* drvthis, int state);
|
||||
void (*icon) (struct lcd_logical_driver* drvthis, int x, int y, int icon);
|
||||
int (*icon) (struct lcd_logical_driver* drvthis, int x, int y, int icon);
|
||||
void (*cursor) (struct lcd_logical_driver* drvthis, int x, int y, int state);
|
||||
|
||||
/* Userdef characters, are those still supported ? */
|
||||
|
||||
@@ -113,43 +113,6 @@ insert_chr_framebuf (struct lcd_logical_driver *driver, int x, int y, char c) {
|
||||
}
|
||||
*/
|
||||
|
||||
void
|
||||
output_heartbeat (struct lcd_logical_driver *driver, int type) {
|
||||
static int timer = 0;
|
||||
int whichIcon;
|
||||
static int saved_type = HEARTBEAT_ON;
|
||||
|
||||
if (type)
|
||||
saved_type = type;
|
||||
|
||||
if (type == HEARTBEAT_ON) {
|
||||
// Set this to pulsate like a real heart beat...
|
||||
if ( (timer + 4) & 5 ) {
|
||||
whichIcon = ICON_HEART_OPEN;
|
||||
}
|
||||
else {
|
||||
whichIcon = ICON_HEART_FILLED;
|
||||
}
|
||||
|
||||
driver->icon (driver, driver->width(driver), 1, whichIcon);
|
||||
|
||||
/* OLD CODE
|
||||
// This defines a custom character EVERY time...
|
||||
// not efficient... is this necessary?
|
||||
driver->icon (driver, whichIcon, 0);
|
||||
|
||||
// Put character on screen...
|
||||
driver->chr (driver, driver->wid, 1, 0);
|
||||
*/
|
||||
|
||||
// change display...
|
||||
//driver->flush (driver);
|
||||
}
|
||||
|
||||
timer++;
|
||||
timer &= 0x0f;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
lib_hbar_static (Driver *drvthis, int x, int y, int len, int promille, int options, int cellwidth, int cc_offset)
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
int new_framebuf (struct lcd_logical_driver *driver, char *oldbuf);
|
||||
|
||||
void output_heartbeat (struct lcd_logical_driver *driver, int type);
|
||||
void lib_hbar_static (Driver *drvthis, int x, int y, int len, int promille, int options, int cellwidth, int cc_offset);
|
||||
void lib_vbar_static (Driver *drvthis, int x, int y, int len, int promille, int options, int cellheight, int cc_offset);
|
||||
|
||||
|
||||
@@ -78,47 +78,6 @@ MODULE_EXPORT int stay_in_foreground = 0;
|
||||
MODULE_EXPORT int supports_multiple = 0;
|
||||
MODULE_EXPORT char *symbol_prefix = "lcdm001_";
|
||||
|
||||
static char num_icon [10][4][3] = {{{' ','_',' '}, /*0*/
|
||||
{'|',' ','|'},
|
||||
{'|','_','|'},
|
||||
{' ',' ',' '}},
|
||||
{{' ',' ',' '},/*1*/
|
||||
{' ',' ','|'},
|
||||
{' ',' ','|'},
|
||||
{' ',' ',' '}},
|
||||
{{' ','_',' '},/*2*/
|
||||
{' ','_','|'},
|
||||
{'|','_',' '},
|
||||
{' ',' ',' '}},
|
||||
{{' ','_',' '},/*3*/
|
||||
{' ','_','|'},
|
||||
{' ','_','|'},
|
||||
{' ',' ',' '}},
|
||||
{{' ',' ',' '},/*4*/
|
||||
{'|','_','|'},
|
||||
{' ',' ','|'},
|
||||
{' ',' ',' '}},
|
||||
{{' ','_',' '},/*5*/
|
||||
{'|','_',' '},
|
||||
{' ','_','|'},
|
||||
{' ',' ',' '}},
|
||||
{{' ','_',' '},/*6*/
|
||||
{'|','_',' '},
|
||||
{'|','_','|'},
|
||||
{' ',' ',' '}},
|
||||
{{' ','_',' '},/*7*/
|
||||
{' ',' ','|'},
|
||||
{' ',' ','|'},
|
||||
{' ',' ',' '}},
|
||||
{{' ','_',' '},/*8*/
|
||||
{'|','_','|'},
|
||||
{'|','_','|'},
|
||||
{' ',' ',' '}},
|
||||
{{' ','_',' '},/*9*/
|
||||
{'|','_','|'},
|
||||
{' ','_','|'},
|
||||
{' ',' ',' '}}};
|
||||
|
||||
static void lcdm001_cursorblink (Driver *drvthis, int on);
|
||||
static char lcdm001_parse_keypad_setting ( Driver *drvthis, char * keyname, char * default_value );
|
||||
|
||||
@@ -399,7 +358,7 @@ lcdm001_output (Driver *drvthis, int state)
|
||||
// Draws a vertical bar, from the bottom of the screen up.
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
lcdm001_vbar(Driver *drvthis, int x, int len)
|
||||
lcdm001_old_vbar(Driver *drvthis, int x, int len)
|
||||
{
|
||||
int y = 4;
|
||||
|
||||
@@ -423,7 +382,7 @@ lcdm001_vbar(Driver *drvthis, int x, int len)
|
||||
// Draws a horizontal bar to the right.
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
lcdm001_hbar(Driver *drvthis, int x, int y, int len)
|
||||
lcdm001_old_hbar(Driver *drvthis, int x, int y, int len)
|
||||
{
|
||||
|
||||
ValidX(x);
|
||||
@@ -449,28 +408,11 @@ lcdm001_hbar(Driver *drvthis, int x, int y, int len)
|
||||
return;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Writes a big number.
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
lcdm001_num (Driver *drvthis, int x, int num)
|
||||
{
|
||||
int y, dx;
|
||||
|
||||
debug (RPT_DEBUG, "LCDM001: Writing big number \"%d\" at x = %d", num, x);
|
||||
|
||||
/*This function uses an ASCII emulation of big numbers*/
|
||||
|
||||
for (y = 1; y < 5; y++)
|
||||
for (dx = 0; dx < 3; dx++)
|
||||
lcdm001_chr (drvthis, x + dx, y, num_icon[num][y-1][dx]);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Sets character 0 to an icon...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
lcdm001_icon (Driver *drvthis, int which, char dest)
|
||||
lcdm001_old_icon (Driver *drvthis, int which, char dest)
|
||||
{
|
||||
|
||||
/*Heartbeat workaround:
|
||||
@@ -497,6 +439,9 @@ lcdm001_icon (Driver *drvthis, int which, char dest)
|
||||
//
|
||||
// Return 0 for "nothing available".
|
||||
//
|
||||
|
||||
/* TODO: write for net API function (get_key) that returns a string */
|
||||
|
||||
MODULE_EXPORT char
|
||||
lcdm001_getkey (Driver *drvthis)
|
||||
{
|
||||
@@ -514,35 +459,3 @@ lcdm001_getkey (Driver *drvthis)
|
||||
/*debug: if(in) fprintf(stderr,"key: %c",in); */
|
||||
return in;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
// Does the heartbeat...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
lcdm001_heartbeat (Driver *drvthis, int type)
|
||||
{
|
||||
static int timer = 0;
|
||||
int whichIcon;
|
||||
static int saved_type = HEARTBEAT_ON;
|
||||
|
||||
if (type)
|
||||
saved_type = type;
|
||||
|
||||
if (type == HEARTBEAT_ON) {
|
||||
// Set this to pulsate like a real heart beat...
|
||||
whichIcon = (! ((timer + 4) & 5));
|
||||
|
||||
// This defines a custom character EVERY time...
|
||||
// not efficient... is this necessary?
|
||||
lcdm001_icon (drvthis, whichIcon, 0);
|
||||
|
||||
// Put character on screen...
|
||||
lcdm001_chr (drvthis, width, 1, 0);
|
||||
|
||||
// change display...
|
||||
lcdm001_flush (drvthis);
|
||||
}
|
||||
|
||||
timer++;
|
||||
timer &= 0x0f;
|
||||
}
|
||||
|
||||
@@ -42,11 +42,10 @@ MODULE_EXPORT void lcdm001_flush (Driver *drvthis);
|
||||
MODULE_EXPORT void lcdm001_string (Driver *drvthis, int x, int y, char *string);
|
||||
MODULE_EXPORT void lcdm001_chr (Driver *drvthis, int x, int y, char c);
|
||||
|
||||
MODULE_EXPORT void lcdm001_vbar (Driver *drvthis, int x, int len);
|
||||
MODULE_EXPORT void lcdm001_hbar (Driver *drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void lcdm001_old_vbar (Driver *drvthis, int x, int len);
|
||||
MODULE_EXPORT void lcdm001_old_hbar (Driver *drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void lcdm001_num (Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void lcdm001_icon (Driver *drvthis, int which, char dest);
|
||||
MODULE_EXPORT void lcdm001_heartbeat (Driver *drvthis, int type);
|
||||
MODULE_EXPORT void lcdm001_old_icon (Driver *drvthis, int which, char dest);
|
||||
|
||||
MODULE_EXPORT void lcdm001_output (Driver *drvthis, int on);
|
||||
|
||||
|
||||
+3
-27
@@ -718,7 +718,7 @@ lcterm_num (Driver *drvthis, int x, int num)
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Sets character 0 to an icon...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
MODULE_EXPORT int
|
||||
lcterm_icon (Driver *drvthis, int x, int y, int icon)
|
||||
{
|
||||
static char heart_open[] = {
|
||||
@@ -755,32 +755,8 @@ lcterm_icon (Driver *drvthis, int x, int y, int icon)
|
||||
lcterm_chr( drvthis, x, y, 0 );
|
||||
break;
|
||||
default:
|
||||
report( RPT_WARNING, "lcterm_icon: unknown or unsupported icon: %d", icon );
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
// Does the heartbeat...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
lcterm_heartbeat (Driver *drvthis, int type)
|
||||
{
|
||||
PrivateData *p = (PrivateData *) drvthis->private_data;
|
||||
|
||||
static int timer = 0;
|
||||
int whichIcon;
|
||||
|
||||
if (type == HEARTBEAT_ON)
|
||||
{
|
||||
/* Set this to pulsate like a real heart beat... */
|
||||
if( ((timer + 4) & 5))
|
||||
whichIcon = ICON_HEART_OPEN;
|
||||
else
|
||||
whichIcon = ICON_HEART_FILLED;
|
||||
|
||||
/* place the icon */
|
||||
lcterm_icon (drvthis, p->width, 1, whichIcon);
|
||||
}
|
||||
timer++;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -39,8 +39,7 @@ MODULE_EXPORT void lcterm_chr (Driver *drvthis, int x, int y, char ch);
|
||||
MODULE_EXPORT void lcterm_vbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void lcterm_hbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void lcterm_num (Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void lcterm_heartbeat (Driver *drvthis, int type);
|
||||
MODULE_EXPORT void lcterm_icon (Driver *drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT int lcterm_icon (Driver *drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT void lcterm_set_char (Driver *drvthis, int n, char *dat);
|
||||
|
||||
#define DEFAULT_DEVICE "/dev/lcd"
|
||||
|
||||
+40
-36
@@ -419,7 +419,7 @@ sed1520_set_char (Driver *drvthis, int n, char *dat)
|
||||
// framebuffer at 1-based position x. len is given in pixels.
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
sed1520_vbar (Driver *drvthis, int x, int len)
|
||||
sed1520_old_vbar (Driver *drvthis, int x, int len)
|
||||
{
|
||||
int i, j, k;
|
||||
x--;
|
||||
@@ -452,7 +452,7 @@ sed1520_vbar (Driver *drvthis, int x, int len)
|
||||
// x,y into the framebuffer. len is given in pixels.
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
sed1520_hbar (Driver *drvthis, int x, int y, int len)
|
||||
sed1520_old_hbar (Driver *drvthis, int x, int y, int len)
|
||||
{
|
||||
int i;
|
||||
x--;
|
||||
@@ -469,41 +469,45 @@ sed1520_hbar (Driver *drvthis, int x, int y, int len)
|
||||
// Reprogrammes character dest to contain an icon given by
|
||||
// which. Calls set_char() to do this.
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
sed1520_icon (Driver *drvthis, int which, char dest)
|
||||
MODULE_EXPORT int
|
||||
sed1520_icon (Driver *drvthis, int x, int y, int icon)
|
||||
{
|
||||
char icons[3][6 * 8] = {
|
||||
static char heart_open[] = {
|
||||
1, 1, 1, 1, 1,
|
||||
1, 0, 1, 0, 1,
|
||||
0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 1,
|
||||
1, 1, 0, 1, 1,
|
||||
1, 1, 1, 1, 1 };
|
||||
|
||||
static char heart_filled[] = {
|
||||
1, 1, 1, 1, 1,
|
||||
1, 0, 1, 0, 1,
|
||||
0, 1, 0, 1, 0,
|
||||
0, 1, 1, 1, 0,
|
||||
0, 1, 1, 1, 0,
|
||||
1, 0, 1, 0, 1,
|
||||
1, 1, 0, 1, 1,
|
||||
1, 1, 1, 1, 1 };
|
||||
|
||||
switch( icon )
|
||||
{
|
||||
1, 1, 1, 1, 1, 1, // Empty Heart
|
||||
1, 0, 1, 0, 1, 1,
|
||||
0, 0, 0, 0, 0, 1,
|
||||
0, 0, 0, 0, 0, 1,
|
||||
0, 0, 0, 0, 0, 1,
|
||||
1, 0, 0, 0, 1, 1,
|
||||
1, 1, 0, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1,}
|
||||
,
|
||||
{
|
||||
1, 1, 1, 1, 1, 1, // Filled Heart
|
||||
1, 0, 1, 0, 1, 1,
|
||||
0, 1, 0, 1, 0, 1,
|
||||
0, 1, 1, 1, 0, 1,
|
||||
0, 1, 1, 1, 0, 1,
|
||||
1, 0, 1, 0, 1, 1,
|
||||
1, 1, 0, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1,}
|
||||
,
|
||||
{
|
||||
0, 0, 0, 0, 0, 0, // Ellipsis
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
1, 0, 1, 0, 1, 0,}
|
||||
,
|
||||
};
|
||||
sed1520_set_char (drvthis, dest, &icons[which][0]);
|
||||
case ICON_BLOCK_FILLED:
|
||||
sed1520_chr( drvthis, x, y, 255 );
|
||||
break;
|
||||
case ICON_HEART_FILLED:
|
||||
sed1520_set_char( drvthis, 0, heart_filled );
|
||||
sed1520_chr( drvthis, x, y, 0 );
|
||||
break;
|
||||
case ICON_HEART_OPEN:
|
||||
sed1520_set_char( drvthis, 0, heart_open );
|
||||
sed1520_chr( drvthis, x, y, 0 );
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,10 +12,10 @@ MODULE_EXPORT void sed1520_flush (Driver *drvthis);
|
||||
MODULE_EXPORT void sed1520_string (Driver *drvthis, int x, int y, char string[]);
|
||||
MODULE_EXPORT void sed1520_chr (Driver *drvthis, int x, int y, char c);
|
||||
|
||||
MODULE_EXPORT void sed1520_vbar (Driver *drvthis, int x, int len);
|
||||
MODULE_EXPORT void sed1520_hbar (Driver *drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void sed1520_old_vbar (Driver *drvthis, int x, int len);
|
||||
MODULE_EXPORT void sed1520_old_hbar (Driver *drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void sed1520_num (Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void sed1520_icon (Driver *drvthis, int which, char dest);
|
||||
MODULE_EXPORT int sed1520_icon (Driver *drvthis, int x, int y, int icon);
|
||||
|
||||
MODULE_EXPORT void sed1520_set_char (Driver *drvthis, int n, char *dat);
|
||||
|
||||
|
||||
@@ -601,7 +601,7 @@ stv5730_num (Driver *drvthis, int x, int num)
|
||||
// framebuffer at 1-based position x. len is given in pixels.
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
stv5730_vbar (Driver *drvthis, int x, int len)
|
||||
stv5730_old_vbar (Driver *drvthis, int x, int len)
|
||||
{
|
||||
|
||||
int i;
|
||||
@@ -633,7 +633,7 @@ stv5730_vbar (Driver *drvthis, int x, int len)
|
||||
// It uses the STV5730 'channel-tuning' chars(0x64-0x68) to do
|
||||
// this.
|
||||
MODULE_EXPORT void
|
||||
stv5730_hbar (Driver *drvthis, int x, int y, int len)
|
||||
stv5730_old_hbar (Driver *drvthis, int x, int y, int len)
|
||||
{
|
||||
int i;
|
||||
x--;
|
||||
@@ -665,7 +665,7 @@ stv5730_hbar (Driver *drvthis, int x, int y, int len)
|
||||
// limited, it doesn't even contain a '%' char. But wait...
|
||||
// It contains a heartbeat char ! :-)
|
||||
MODULE_EXPORT void
|
||||
stv5730_icon (Driver *drvthis, int which, char dest)
|
||||
stv5730_old_icon (Driver *drvthis, int which, char dest)
|
||||
{
|
||||
switch (which)
|
||||
{
|
||||
|
||||
@@ -13,9 +13,9 @@ MODULE_EXPORT void stv5730_clear (Driver *drvthis);
|
||||
MODULE_EXPORT void stv5730_flush (Driver *drvthis);
|
||||
MODULE_EXPORT void stv5730_string (Driver *drvthis, int x, int y, char string[]);
|
||||
MODULE_EXPORT void stv5730_chr (Driver *drvthis, int x, int y, char c);
|
||||
MODULE_EXPORT void stv5730_vbar (Driver *drvthis, int x, int len);
|
||||
MODULE_EXPORT void stv5730_hbar (Driver *drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void stv5730_old_vbar (Driver *drvthis, int x, int len);
|
||||
MODULE_EXPORT void stv5730_old_hbar (Driver *drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void stv5730_num (Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void stv5730_icon (Driver *drvthis, int which, char dest);
|
||||
MODULE_EXPORT void stv5730_old_icon (Driver *drvthis, int which, char dest);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -434,26 +434,6 @@ svgalib_drv_hbar (Driver *drvthis, int x, int y, int len, int promille, int patt
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* Sets character 0 to an icon...
|
||||
*/
|
||||
MODULE_EXPORT void
|
||||
svgalib_drv_icon (Driver *drvthis, int which, char dest)
|
||||
{
|
||||
if (dest == 0)
|
||||
switch (which) {
|
||||
case 0:
|
||||
icon_char = '+';
|
||||
break;
|
||||
case 1:
|
||||
icon_char = '*';
|
||||
break;
|
||||
default:
|
||||
icon_char = '#';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* Return a keypress
|
||||
*/
|
||||
|
||||
@@ -13,7 +13,6 @@ MODULE_EXPORT void svgalib_drv_chr (Driver *drvthis, int x, int y, char c);
|
||||
MODULE_EXPORT void svgalib_drv_vbar (Driver *drvthis, int x, int y, int len, int promille, int pattern);
|
||||
MODULE_EXPORT void svgalib_drv_hbar (Driver *drvthis, int x, int y, int len, int promille, int pattern);
|
||||
MODULE_EXPORT void svgalib_drv_num (Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void svgalib_drv_icon (Driver *drvthis, int which, char dest);
|
||||
|
||||
MODULE_EXPORT char * svgalib_drv_get_key (Driver *drvthis);
|
||||
|
||||
|
||||
+3
-26
@@ -392,7 +392,7 @@ t6963_hbar (Driver *drvthis, int x, int y, int len, int promille, int options)
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Sets an icon...
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
MODULE_EXPORT int
|
||||
t6963_icon (Driver *drvthis, int x, int y, int icon)
|
||||
{
|
||||
debug (RPT_DEBUG, "T6963: set icon %d", icon);
|
||||
@@ -407,32 +407,9 @@ t6963_icon (Driver *drvthis, int x, int y, int icon)
|
||||
t6963_chr( drvthis, x, y, 4 );
|
||||
break;
|
||||
default:
|
||||
report (RPT_WARNING, "T6963: icon type not supported!");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// Does the heartbeat
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
t6963_heartbeat (Driver *drvthis, int type)
|
||||
{
|
||||
static int timer;
|
||||
int whichIcon;
|
||||
static int saved_type = HEARTBEAT_ON;
|
||||
|
||||
if (type)
|
||||
saved_type = type;
|
||||
|
||||
if (type == HEARTBEAT_ON) {
|
||||
// Set this to pulsate like a real heartbeat...
|
||||
whichIcon = (! ((timer + 4) & 5));
|
||||
// Put character on screen...
|
||||
t6963_chr (drvthis, width, 1, 3+whichIcon);
|
||||
}
|
||||
|
||||
timer++;
|
||||
timer &= 0x0f;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ---------------------- internal functions ------------------------------------- */
|
||||
|
||||
@@ -113,8 +113,7 @@ MODULE_EXPORT void t6963_chr (Driver *drvthis, int x, int y, char c);
|
||||
MODULE_EXPORT void t6963_vbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void t6963_hbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void t6963_num (Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void t6963_icon (Driver *drvthis, int x, int y, int icon);
|
||||
MODULE_EXPORT void t6963_heartbeat (Driver *drvthis, int type);
|
||||
MODULE_EXPORT int t6963_icon (Driver *drvthis, int x, int y, int icon);
|
||||
|
||||
MODULE_EXPORT void t6963_set_char (Driver *drvthis, int n, char *dat);
|
||||
|
||||
|
||||
@@ -13,13 +13,6 @@ MODULE_EXPORT void text_string (Driver *drvthis, int x, int y, char string[]);
|
||||
MODULE_EXPORT void text_chr (Driver *drvthis, int x, int y, char c);
|
||||
MODULE_EXPORT void text_set_contrast (Driver *drvthis, int promille);
|
||||
MODULE_EXPORT void text_backlight (Driver *drvthis, int on);
|
||||
//MODULE_EXPORT void text_init_vbar (Driver *drvthis);
|
||||
//MODULE_EXPORT void text_init_hbar (Driver *drvthis);
|
||||
//MODULE_EXPORT void text_init_num (Driver *drvthis);
|
||||
MODULE_EXPORT void text_vbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void text_hbar (Driver *drvthis, int x, int y, int len, int promille, int options);
|
||||
MODULE_EXPORT void text_num (Driver *drvthis, int x, int num);
|
||||
//MODULE_EXPORT void text_set_char (Driver *drvthis, int n, char *dat);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -435,7 +435,7 @@ sli_init_hbar (Driver *drvthis)
|
||||
for me to add */
|
||||
|
||||
MODULE_EXPORT void
|
||||
sli_vbar (Driver *drvthis, int x, int len)
|
||||
sli_old_vbar (Driver *drvthis, int x, int len)
|
||||
{
|
||||
char map[9] = { 32, 1, 2, 3, 4, 5, 6, 7, 255 };
|
||||
|
||||
@@ -455,7 +455,7 @@ sli_vbar (Driver *drvthis, int x, int len)
|
||||
// Draws a horizontal bar to the right.
|
||||
//
|
||||
MODULE_EXPORT void
|
||||
sli_hbar (Driver *drvthis, int x, int y, int len)
|
||||
sli_old_hbar (Driver *drvthis, int x, int y, int len)
|
||||
{
|
||||
char map[6] = { 32, 1, 2, 3, 4, 255 };
|
||||
|
||||
@@ -513,7 +513,7 @@ sli_set_char (Driver *drvthis, int n, char *dat)
|
||||
}
|
||||
|
||||
MODULE_EXPORT void
|
||||
sli_icon (Driver *drvthis, int which, char dest)
|
||||
sli_old_icon (Driver *drvthis, int x, int y, int icon)
|
||||
{
|
||||
char icons[3][5 * 8] = {
|
||||
{
|
||||
@@ -553,6 +553,20 @@ sli_icon (Driver *drvthis, int which, char dest)
|
||||
|
||||
if (custom == bign)
|
||||
custom = beat;
|
||||
sli_set_char (drvthis, dest, &icons[which][0]);
|
||||
switch( icon ) {
|
||||
case ICON_BLOCK_FILLED:
|
||||
CFontz_chr( drvthis, x, y, 255 );
|
||||
break;
|
||||
case ICON_HEART_FILLED:
|
||||
CFontz_set_char( drvthis, 0, icons[1] );
|
||||
CFontz_chr( drvthis, x, y, 0 );
|
||||
break;
|
||||
case ICON_HEART_OPEN:
|
||||
CFontz_set_char( drvthis, 0, icons[0] );
|
||||
CFontz_chr( drvthis, x, y, 0 );
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,10 +18,10 @@ MODULE_EXPORT void sli_flush (Driver *drvthis);
|
||||
MODULE_EXPORT void sli_string (Driver *drvthis, int x, int y, char *string);
|
||||
MODULE_EXPORT void sli_chr (Driver *drvthis, int x, int y, char c);
|
||||
|
||||
MODULE_EXPORT void sli_vbar (Driver *drvthis, int x, int len);
|
||||
MODULE_EXPORT void sli_hbar (Driver *drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void sli_old_vbar (Driver *drvthis, int x, int len);
|
||||
MODULE_EXPORT void sli_old_hbar (Driver *drvthis, int x, int y, int len);
|
||||
MODULE_EXPORT void sli_num (Driver *drvthis, int x, int num);
|
||||
MODULE_EXPORT void sli_icon (Driver *drvthis, int which, char dest);
|
||||
MODULE_EXPORT void sli_old_icon (Driver *drvthis, int which, char dest);
|
||||
|
||||
MODULE_EXPORT void sli_set_char (Driver *drvthis, int n, char *dat);
|
||||
|
||||
|
||||
+6
-1
@@ -48,7 +48,12 @@ struct icontable {
|
||||
{ICON_ARROW_DOWN, "ARROW_DOWN"},
|
||||
{ICON_ARROW_LEFT, "ARROW_LEFT"},
|
||||
{ICON_ARROW_RIGHT, "ARROW_RIGHT"},
|
||||
{ICON_STOP, "STOP"},
|
||||
{ICON_CHECKBOX_OFF, "CHECKBOX_OFF"},
|
||||
{ICON_CHECKBOX_ON, "CHECKBOX_ON"},
|
||||
{ICON_CHECKBOX_GRAY, "CHECKBOX_GRAY"},
|
||||
{ICON_SELECTOR_AT_LEFT, "SELECTOR_AT_LEFT"},
|
||||
{ICON_SELECTOR_AT_RIGHT, "SELECTOR_AT_RIGHT"},
|
||||
{ICON_ELLIPSIS, "ELLIPSIS"},
|
||||
{ICON_PAUSE, "PAUSE"},
|
||||
{ICON_PLAY, "PLAY"},
|
||||
{ICON_PLAYR, "PLAYR"},
|
||||
|
||||
Reference in New Issue
Block a user