aboutsummaryrefslogtreecommitdiffstats
path: root/drv_generic.c
blob: 12aacf5e399e270e9612bdc9c0cf1a8dedc750d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/* $Id: drv_generic.c,v 1.7 2006/08/13 09:53:10 reinelt Exp $
 *
 * generic driver helper
 *
 * Copyright (C) 2006 Michael Reinelt <reinelt@eunet.at>
 * Copyright (C) 2006 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
 *
 * This file is part of LCD4Linux.
 *
 * LCD4Linux is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * LCD4Linux is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *
 * $Log: drv_generic.c,v $
 * Revision 1.7  2006/08/13 09:53:10  reinelt
 * dynamic properties added (used by 'style' of text widget)
 *
 * Revision 1.6  2006/08/13 06:46:51  reinelt
 * T6963 soft-timing & enhancements; indent
 *
 * Revision 1.5  2006/08/09 17:25:34  harbaum
 * Better bar color support and new bold font
 *
 * Revision 1.4  2006/07/31 03:48:09  reinelt
 * preparations for scrolling
 *
 */

/* 
 *
 * exported functions:
 *
 * drv_generic_init (void)
 *   initializes generic stuff and registers plugins
 *
 */


#include "config.h"

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#include "debug.h"
#include "plugin.h"
#include "drv_generic.h"

#ifdef WITH_DMALLOC
#include <dmalloc.h>
#endif

/* these values are chars (text displays) or pixels (graphic displays) */

int LROWS = 0;			/* layout size: rows */
int LCOLS = 0;			/* layout size: columns */

int DROWS = 4;			/* display size:  rows */
int DCOLS = 20;			/* display size: columns */

int XRES = 6;			/* pixel widtht of one char */
int YRES = 8;			/* pixel height of one char */


void (*drv_generic_blit) () = NULL;


static void my_drows(RESULT * result)
{
    double value = DROWS;
    SetResult(&result, R_NUMBER, &value);
}

static void my_dcols(RESULT * result)
{
    double value = DCOLS;
    SetResult(&result, R_NUMBER, &value);
}

static void my_xres(RESULT * result)
{
    double value = XRES;
    SetResult(&result, R_NUMBER, &value);
}

static void my_yres(RESULT * result)
{
    double value = YRES;
    SetResult(&result, R_NUMBER, &value);
}

static void my_lrows(RESULT * result)
{
    double value = LROWS;
    SetResult(&result, R_NUMBER, &value);
}

static void my_lcols(RESULT * result)
{
    double value = LCOLS;
    SetResult(&result, R_NUMBER, &value);
}

int drv_generic_init(void)
{

    AddFunction("LCD::height", 0, my_drows);
    AddFunction("LCD::width", 0, my_dcols);

    AddFunction("LCD::xres", 0, my_xres);
    AddFunction("LCD::yres", 0, my_yres);

    AddFunction("Layout::height", 0, my_lrows);
    AddFunction("Layout::width", 0, my_lcols);

    return 0;
}
WLINUX,1,[CwLinux driver]) fi if test "$HD44780" = "yes"; then TEXT="yes" PARPORT="yes" # DRIVERS="$DRIVERS drv_HD44780.lo" DRIVERS="$DRIVERS drv_HD44780.o" AC_DEFINE(WITH_HD44780,1,[HD44780 driver]) fi if test "$M50530" = "yes"; then TEXT="yes" PARPORT="yes" # DRIVERS="$DRIVERS drv_M50530.lo" DRIVERS="$DRIVERS drv_M50530.o" AC_DEFINE(WITH_M50530,1,[M50530 driver]) fi if test "$T6963" = "yes"; then GRAPHIC="yes" PARPORT="yes" # DRIVERS="$DRIVERS drv_T6963.lo" DRIVERS="$DRIVERS drv_T6963.o" AC_DEFINE(WITH_T6963,1,[T6963 driver]) fi if test "$USBLCD" = "yes"; then TEXT="yes" SERIAL="yes" # DRIVERS="$DRIVERS drv_USBLCD.lo" DRIVERS="$DRIVERS drv_USBLCD.o" AC_DEFINE(WITH_USBLCD,1,[USBLCD driver]) fi if test "$MATRIXORBITAL" = "yes"; then SERIAL="yes" # DRIVERS="$DRIVERS drv_MatrixOrbital.lo" DRIVERS="$DRIVERS drv_MatrixOrbital.o" AC_DEFINE(WITH_MATRIXORBITAL,1,[MatrixOrbital driver]) fi if test "$MILINST" = "yes"; then # DRIVERS="$DRIVERS MilfordInstruments.lo" # DRIVERS="$DRIVERS MilfordInstruments.o" AC_DEFINE(WITH_MILINST,1,[Milford Instruments driver]) fi if test "$PALMPILOT" = "yes"; then # DRIVERS="$DRIVERS PalmPilot.lo" # DRIVERS="$DRIVERS PalmPilot.o" AC_DEFINE(WITH_PALMPILOT,1,[PalmPilot driver]) fi if test "$PNG" = "yes"; then if test "$has_gd" = "true"; then GRAPHIC="yes" AC_DEFINE(WITH_PNG,1,[ driver]) DRVLIBS="$DRVLIBS -lgd" else AC_MSG_WARN(gd.h not found: PNG driver disabled) fi fi if test "$PPM" = "yes"; then if test "$has_gd" = "true"; then GRAPHIC="yes" AC_DEFINE(WITH_PPM,1,[ driver]) else AC_MSG_WARN(gd.h not found: PNG driver disabled) fi fi if test "$X11" = "yes"; then if test "$no_x" = "yes"; then AC_MSG_ERROR(X11 headers or libraries not available: X11 driver disabled) else GRAPHIC="yes" # DRIVERS="$DRIVERS drv_X11.lo" DRIVERS="$DRIVERS drv_X11.o" DRVLIBS="$DRVLIBS -L$ac_x_libraries -lX11" AC_DEFINE(WITH_X11,1,[X11 driver]) fi fi if test "$DRIVERS" = ""; then AC_MSG_ERROR([You should include at least one driver...]) fi # generic text driver if test "$TEXT" = "yes"; then # DRIVERS="$DRIVERS drv_generic_text.lo" DRIVERS="$DRIVERS drv_generic_text.o" fi # generic graphic driver if test "$GRAPHIC" = "yes"; then : # DRIVERS="$DRIVERS DRIVERS="$DRIVERS drv_generic_graphic.o" fi # generic parport driver if test "$PARPORT" = "yes"; then # DRIVERS="$DRIVERS drv_generic_parport.lo" DRIVERS="$DRIVERS drv_generic_parport.o" fi # generic serial driver if test "$SERIAL" = "yes"; then # DRIVERS="$DRIVERS drv_generic_serial.lo" DRIVERS="$DRIVERS drv_generic_serial.o" fi AC_SUBST(DRIVERS) AC_SUBST(DRVLIBS) # Checks for header files. AC_HEADER_STDC AC_HEADER_DIRENT AC_HEADER_SYS_WAIT AC_CHECK_HEADERS([arpa/inet.h fcntl.h malloc.h netdb.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h syslog.h termios.h unistd.h]) AC_CHECK_HEADERS(sys/io.h asm/io.h) AC_CHECK_HEADERS(linux/parport.h linux/ppdev.h) AC_CHECK_HEADERS(linux/dvb/frontend.h) AC_CHECK_HEADERS(net/if_ppp.h) AC_CHECK_HEADERS(asm/msr.h) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_PID_T AC_TYPE_SIZE_T AC_HEADER_TIME AC_TYPE_UID_T # Checks for library functions. AC_FUNC_FORK AC_FUNC_CLOSEDIR_VOID AC_FUNC_ERROR_AT_LINE AC_PROG_GCC_TRADITIONAL # uClibc has no getloadavg() # AC_FUNC_GETLOADAVG sounds promising, but does not really work #AC_FUNC_GETLOADAVG #removed for uClibc compatibility #AC_FUNC_MALLOC #AC_FUNC_REALLOC AC_FUNC_MEMCMP AC_FUNC_SELECT_ARGTYPES AC_TYPE_SIGNAL AC_FUNC_STAT AC_CHECK_FUNCS([atexit dup2 gethostbyname getloadavg gettimeofday memmove memset pow putenv regcomp select socket sqrt strcasecmp strchr strdup strerror strncasecmp strndup strpbrk strrchr strstr strtol uname]) AC_CONFIG_FILES([Makefile]) AC_OUTPUT