summaryrefslogtreecommitdiff
path: root/glcddrivers/drivers.c
blob: a0e5ce087c93432e0360360fa917cbb133eaf5e7 (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
129
130
131
/*
 * GraphLCD driver library
 *
 * drivers.c  -  global driver constants and functions
 *
 * This file is released under the GNU General Public License. Refer
 * to the COPYING file distributed with this package.
 *
 * (c) 2004 Andreas Regel <andreas.regel AT powarman.de>
 */

#include <string.h>

#include "drivers.h"
#include "simlcd.h"
#include "gu140x32f.h"
#include "gu256x64-372.h"
#include "gu256x64-3900.h"
#include "hd61830.h"
#include "ks0108.h"
#include "sed1330.h"
#include "sed1520.h"
#include "t6963c.h"
#include "framebuffer.h"
#include "image.h"
#include "noritake800.h"
#include "avrctl.h"
#include "network.h"
#include "gu126x64D-K610A4.h"
#include "dm140gink.h"
#include "serdisp.h"
#include "g15daemon.h"
#ifdef HAVE_AX206DPF_EXPERIMENTAL
#include "ax206dpf.h"
#endif

namespace GLCD
{

tDriver drivers[] =
{
    {"simlcd",        kDriverSimLCD},
    {"gu140x32f",     kDriverGU140X32F},
    {"gu256x64-372",  kDriverGU256X64_372},
    {"gu256x64-3900", kDriverGU256X64_3900},
    {"hd61830",       kDriverHD61830},
    {"ks0108",        kDriverKS0108},
    {"sed1330",       kDriverSED1330},
    {"sed1520",       kDriverSED1520},
    {"t6963c",        kDriverT6963C},
    {"framebuffer",   kDriverFramebuffer},
    {"image",         kDriverImage},
    {"noritake800",   kDriverNoritake800},
    {"avrctl",        kDriverAvrCtl},
    {"network",       kDriverNetwork},
    {"gu126x64D-K610A4", kDriverGU126X64D_K610A4},
    {"dm140gink",     kDriverDM140GINK},
    {"serdisp",       kDriverSerDisp},
    {"g15daemon",     kDriverG15daemon},
#ifdef HAVE_AX206DPF_EXPERIMENTAL
    {"ax206dpf",      kDriverAX206DPF},
#endif    
    {"",              kDriverUnknown}
};

tDriver * GetAvailableDrivers(int & count)
{
    for (count = 0; drivers[count].name.length() > 0; count++)
        ;
    return drivers;
}

int GetDriverID(const std::string & driver)
{
    for (int i = 0; drivers[i].name.length() > 0; i++)
        if (drivers[i].name == driver)
            return drivers[i].id;
    return kDriverUnknown;
}

cDriver * CreateDriver(int driverID, cDriverConfig * config)
{
    switch (driverID)
    {
        case kDriverSimLCD:
            return new cDriverSimLCD(config);
        case kDriverGU140X32F:
            return new cDriverGU140X32F(config);
        case kDriverGU256X64_372:
            return new cDriverGU256X64_372(config);
        case kDriverGU256X64_3900:
            return new cDriverGU256X64_3900(config);
        case kDriverHD61830:
            return new cDriverHD61830(config);
        case kDriverKS0108:
            return new cDriverKS0108(config);
        case kDriverSED1330:
            return new cDriverSED1330(config);
        case kDriverSED1520:
            return new cDriverSED1520(config);
        case kDriverT6963C:
            return new cDriverT6963C(config);
        case kDriverFramebuffer:
            return new cDriverFramebuffer(config);
        case kDriverImage:
            return new cDriverImage(config);
        case kDriverNoritake800:
            return new cDriverNoritake800(config);
        case kDriverAvrCtl:
            return new cDriverAvrCtl(config);
        case kDriverNetwork:
            return new cDriverNetwork(config);
        case kDriverGU126X64D_K610A4:
            return new cDriverGU126X64D_K610A4(config);
        case kDriverDM140GINK:
            return new cDriverDM140GINK(config);
        case kDriverSerDisp:
            return new cDriverSerDisp(config);
        case kDriverG15daemon:
            return new cDriverG15daemon(config);
#ifdef HAVE_AX206DPF_EXPERIMENTAL
        case kDriverAX206DPF:
            return new cDriverAX206DPF(config);
#endif
        case kDriverUnknown:
        default:
            return NULL;
    }
}

} // end of namespace