94 lines
3.6 KiB
C
94 lines
3.6 KiB
C
/*-
|
|
* picoLCD driver for LCDproc
|
|
*
|
|
* Copyright (c) 2007 NitroSecurity, Inc.
|
|
* 2007-2008 Peter Marschall
|
|
* 2007-2008 Mini-Box.com, Nicu Pavel <npavel@ituner.com>
|
|
* 2008 Jack Cleaver
|
|
*
|
|
* This file is released under the GNU General Public License. Refer to the
|
|
* COPYING file distributed with this package.
|
|
*
|
|
*/
|
|
|
|
#ifndef PICOLCD_H
|
|
#define PCIOLCD_H
|
|
|
|
/* 12 keys plus a 0 placeholder */
|
|
#define KEYPAD_MAX 13
|
|
#define KEYPAD_LIGHTS 8
|
|
#define KEYPAD_LABEL_MAX 25
|
|
|
|
#define IN_REPORT_KEY_STATE 0x11
|
|
#define IN_REPORT_IR_DATA 0x21
|
|
|
|
#define OUT_REPORT_CMD 0x94
|
|
#define OUT_REPORT_DATA 0x95
|
|
|
|
#define PICOLCD_MAX_DATA_LEN 24
|
|
|
|
#define DEFAULT_LIRCPORT 8765
|
|
#define DEFAULT_FLUSH_THRESHOLD_JIFFY 100 /* 6.1 millisec */
|
|
#define DEFAULT_CONTRAST 1000 /* Full */
|
|
#define DEFAULT_BRIGHTNESS 1000 /* Full */
|
|
#define DEFAULT_OFFBRIGHTNESS 0 /* Off */
|
|
#define DEFAULT_BACKLIGHT 1 /* On */
|
|
#define DEFAULT_KEYLIGHTS 1 /* On */
|
|
#define DEFAULT_TIMEOUT 500 /* Half second */
|
|
|
|
|
|
typedef struct _lcd_packet {
|
|
unsigned char data[255];
|
|
unsigned int type;
|
|
} lcd_packet;
|
|
|
|
typedef struct _picolcd_device {
|
|
char *device_name; /* Device name */
|
|
char *description; /* Device description */
|
|
unsigned char initseq[PICOLCD_MAX_DATA_LEN]; /* init sequence */
|
|
char *keymap[KEYPAD_MAX]; /* key pad button names */
|
|
unsigned int vendor_id; /* vendor id for detection */
|
|
unsigned int device_id; /* device id for detection */
|
|
int bklight_max; /* maximum value for 'backlight on' */
|
|
int bklight_min; /* maximum value for 'backlight off' */
|
|
int contrast_max; /* contrast maximum value */
|
|
int contrast_min; /* minimum contrast value */
|
|
int width; /* width of lcd screen */
|
|
int height; /* height of lcd screen */
|
|
/* Pointer to function that writes data to the LCD format */
|
|
void (*write) (usb_dev_handle *lcd, const int row, const int col, const unsigned char *data);
|
|
/* Pointer to function that defines a custom character */
|
|
void (*cchar) (Driver *drvthis, int n, unsigned char *dat);
|
|
} picolcd_device;
|
|
|
|
|
|
MODULE_EXPORT int picoLCD_init(Driver *drvthis);
|
|
MODULE_EXPORT void picoLCD_close(Driver *drvthis);
|
|
MODULE_EXPORT int picoLCD_width(Driver *drvthis);
|
|
MODULE_EXPORT int picoLCD_height(Driver *drvthis);
|
|
MODULE_EXPORT void picoLCD_clear(Driver *drvthis);
|
|
MODULE_EXPORT void picoLCD_flush(Driver *drvthis);
|
|
MODULE_EXPORT void picoLCD_string(Driver *drvthis, int x, int y, unsigned char string[]);
|
|
MODULE_EXPORT void picoLCD_chr(Driver *drvthis, int x, int y, unsigned char c);
|
|
MODULE_EXPORT char *picoLCD_get_key(Driver *drvthis);
|
|
|
|
MODULE_EXPORT int picoLCD_get_free_chars (Driver *drvthis);
|
|
MODULE_EXPORT void picoLCD_set_char (Driver *drvthis, int n, unsigned char *dat);
|
|
|
|
MODULE_EXPORT void picoLCD_vbar(Driver *drvthis, int x, int y, int len, int promille, int options);
|
|
MODULE_EXPORT void picoLCD_hbar(Driver *drvthis, int x, int y, int len, int promille, int options);
|
|
MODULE_EXPORT void picoLCD_num(Driver *drvthis, int x, int num);
|
|
MODULE_EXPORT int picoLCD_icon(Driver *drvthis, int x, int y, int icon);
|
|
MODULE_EXPORT void picoLCD_cursor(Driver *drvthis, int x, int y, int type);
|
|
|
|
MODULE_EXPORT int picoLCD_get_contrast(Driver *drvthis);
|
|
MODULE_EXPORT void picoLCD_set_contrast(Driver *drvthis, int promille);
|
|
MODULE_EXPORT int picoLCD_get_brightness(Driver *drvthis, int state);
|
|
MODULE_EXPORT void picoLCD_set_brightness(Driver *drvthis, int state, int promille);
|
|
MODULE_EXPORT void picoLCD_backlight(Driver *drvthis, int state);
|
|
MODULE_EXPORT void picoLCD_output(Driver *drvthis, int state);
|
|
|
|
MODULE_EXPORT char *picoLCD_get_info(Driver *drvthis);
|
|
|
|
#endif
|