2 * Copyright © 1999 Keith Packard
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation, and that the name of Keith Packard not be used in
9 * advertising or publicity pertaining to distribution of the software without
10 * specific, written prior permission. Keith Packard makes no
11 * representations about the suitability of this software for any purpose. It
12 * is provided "as is" without express or implied warranty.
14 * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16 * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20 * PERFORMANCE OF THIS SOFTWARE.
24 #include <kdrive-config.h>
28 KdCardInfo
*kdCardInfo
;
31 KdCardInfoAdd(KdCardFuncs
* funcs
, void *closure
)
33 KdCardInfo
*ci
, **prev
;
35 ci
= calloc(1, sizeof(KdCardInfo
));
38 for (prev
= &kdCardInfo
; *prev
; prev
= &(*prev
)->next
);
41 ci
->closure
= closure
;
55 for (ci
= kdCardInfo
; ci
->next
; ci
= ci
->next
);
60 KdCardInfoDispose(KdCardInfo
* ci
)
64 for (prev
= &kdCardInfo
; *prev
; prev
= &(*prev
)->next
)
73 KdScreenInfoAdd(KdCardInfo
* ci
)
75 KdScreenInfo
*si
, **prev
;
78 si
= calloc(1, sizeof(KdScreenInfo
));
81 for (prev
= &ci
->screenList
, n
= 0; *prev
; prev
= &(*prev
)->next
, n
++);
90 KdScreenInfoDispose(KdScreenInfo
* si
)
92 KdCardInfo
*ci
= si
->card
;
95 for (prev
= &ci
->screenList
; *prev
; prev
= &(*prev
)->next
) {
100 KdCardInfoDispose(ci
);
112 pi
= (KdPointerInfo
*) calloc(1, sizeof(KdPointerInfo
));
116 pi
->name
= strdup("Generic Pointer");
118 pi
->inputClass
= KD_MOUSE
;
120 pi
->driverPrivate
= NULL
;
124 pi
->nButtons
= KD_MAX_BUTTON
;
125 for (i
= 1; i
< KD_MAX_BUTTON
; i
++)
132 KdFreePointer(KdPointerInfo
* pi
)
136 input_option_free_list(&pi
->options
);
141 KdFreeKeyboard(KdKeyboardInfo
* ki
)