kdrive/sdl: fix compilation

This commit is contained in:
Daniel Stone 2006-11-08 15:23:35 +02:00 committed by Daniel Stone
parent 988757a441
commit 332f179db7

View File

@ -30,7 +30,6 @@
#include "kdrive-config.h" #include "kdrive-config.h"
#endif #endif
#include "kdrive.h" #include "kdrive.h"
#include "kkeymap.h"
#include <SDL/SDL.h> #include <SDL/SDL.h>
#include <X11/keysym.h> #include <X11/keysym.h>
@ -39,20 +38,20 @@ static Bool sdlScreenInit(KdScreenInfo *screen);
static Bool sdlFinishInitScreen(ScreenPtr pScreen); static Bool sdlFinishInitScreen(ScreenPtr pScreen);
static Bool sdlCreateRes(ScreenPtr pScreen); static Bool sdlCreateRes(ScreenPtr pScreen);
static void sdlKeyboardBell (int volume, int pitch, int duration); static void sdlKeyboardFini(KdKeyboardInfo *ki);
static void sdlKeyboardLeds (int leds); static Bool sdlKeyboardInit(KdKeyboardInfo *ki);
static void sdlKeyboardFini(void);
static void sdlKeyboardLoad (void);
static Bool sdlKeyboardInit(void);
static Bool sdlMouseInit(void); static Bool sdlMouseInit(KdPointerInfo *pi);
static void sdlMouseFini(void); static void sdlMouseFini(KdPointerInfo *pi);
void *sdlShadowWindow (ScreenPtr pScreen, CARD32 row, CARD32 offset, int mode, CARD32 *size, void *closure); void *sdlShadowWindow (ScreenPtr pScreen, CARD32 row, CARD32 offset, int mode, CARD32 *size, void *closure);
void sdlShadowUpdate (ScreenPtr pScreen, shadowBufPtr pBuf); void sdlShadowUpdate (ScreenPtr pScreen, shadowBufPtr pBuf);
void sdlTimer(void); void sdlTimer(void);
KdKeyboardInfo *sdlKeyboard = NULL;
KdPointerInfo *sdlPointer = NULL;
KeySym sdlKeymap[]={ KeySym sdlKeymap[]={
0, /* 8 */ 0, /* 8 */
0, 0,
@ -168,51 +167,23 @@ KeySym sdlKeymap[]={
NoSymbol, NoSymbol /* 118 */ NoSymbol, NoSymbol /* 118 */
}; };
//KdMouseInfo *kdMouseInfo; KdKeyboardDriver sdlKeyboardDriver = {
.name = "keyboard",
KdKeyboardFuncs sdlKeyboardFuncs = { .Init = sdlKeyboardInit,
sdlKeyboardLoad, .Fini = sdlKeyboardFini,
sdlKeyboardInit,
sdlKeyboardLeds,
sdlKeyboardBell,
sdlKeyboardFini,
3,
}; };
KdMouseFuncs sdlMouseFuncs = { KdPointerDriver sdlMouseDriver = {
sdlMouseInit, .name = "mouse",
sdlMouseFini, .Init = sdlMouseInit,
.Fini = sdlMouseFini,
}; };
KdCardFuncs sdlFuncs = { KdCardFuncs sdlFuncs = {
0, /* cardinit */ .scrinit = sdlScreenInit, /* scrinit */
sdlScreenInit, /* scrinit */ .finishInitScreen = sdlFinishInitScreen, /* finishInitScreen */
0, /* initScreen */ .createRes = sdlCreateRes, /* createRes */
sdlFinishInitScreen, /* finishInitScreen */
sdlCreateRes, /* createRes */
0, /* preserve */
0, /* enable */
0, /* dpms */
0, /* disable */
0, /* restore */
0, /* scrfini */
0, /* cardfini */
0, /* initCursor */
0, /* enableCursor */
0, /* disableCursor */
0, /* finiCursor */
0, /* recolorCursor */
0, /* initAccel */
0, /* enableAccel */
0, /* syncAccel */
0, /* disableAccel */
0, /* finiAccel */
0, /* getColors */
0 /* putColors */
}; };
int mouseState=0; int mouseState=0;
@ -327,52 +298,34 @@ static Bool sdlFinishInitScreen(ScreenPtr pScreen)
return TRUE; return TRUE;
} }
static void sdlKeyboardBell (int volume, int pitch, int duration) static void sdlKeyboardFini(KdKeyboardInfo *ki)
{ {
#ifdef DEBUG sdlKeyboard = NULL;
printf("a bell would go here\n");
#endif
} }
static void sdlKeyboardLeds (int leds) static Bool sdlKeyboardInit(KdKeyboardInfo *ki)
{ {
#ifdef DEBUG ki->minScanCode = 8;
printf("Leds: %d\n", leds); ki->maxScanCode = 255;
#endif ki->keySyms.minKeyCode = 8;
} ki->keySyms.maxKeyCode = 255;
ki->keySyms.mapWidth = 2;
memcpy(ki->keySyms.map, sdlKeymap, sizeof(sdlKeymap));
static void sdlKeyboardLoad(void) sdlKeyboard = ki;
{
int x;
kdMinScanCode = 8;
kdMaxScanCode = 255;
kdMinKeyCode = 8;
kdMaxKeyCode = 255;
kdKeymapWidth = 2;
memcpy(kdKeymap, sdlKeymap, sizeof(sdlKeymap));
}
static void sdlKeyboardFini(void)
{
}
static Bool sdlKeyboardInit(void)
{
return TRUE; return TRUE;
} }
static Bool sdlMouseInit (void) static Bool sdlMouseInit (KdPointerInfo *pi)
{ {
#ifdef DEBUG sdlPointer = pi;
printf("kdMouseInfo: 0x%x\n", kdMouseInfo);
#endif
return TRUE; return TRUE;
} }
static void sdlMouseFini(void) static void sdlMouseFini(KdPointerInfo *pi)
{ {
sdlPointer = NULL;
} }
@ -395,8 +348,18 @@ void InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
void InitInput(int argc, char **argv) void InitInput(int argc, char **argv)
{ {
/* FIXME: change this to use SDL key/mouse funcs */ KdPointerInfo *pi;
KdInitInput(&sdlMouseFuncs, &sdlKeyboardFuncs); KdKeyboardInfo *ki;
KdAddKeyboardDriver(&sdlKeyboardDriver);
KdAddPointerDriver(&sdlMouseDriver);
ki = KdParseKeyboard("keyboard");
KdAddKeyboard(ki);
pi = KdParsePointer("mouse");
KdAddPointer(pi);
KdInitInput();
} }
void ddxUseMsg(void) void ddxUseMsg(void)
@ -418,7 +381,7 @@ void sdlTimer(void)
while ( SDL_PollEvent(&event) ) { while ( SDL_PollEvent(&event) ) {
switch (event.type) { switch (event.type) {
case SDL_MOUSEMOTION: case SDL_MOUSEMOTION:
KdEnqueueMouseEvent(kdMouseInfo, mouseState, event.motion.x, event.motion.y); KdEnqueuePointerEvent(sdlPointer, mouseState, event.motion.x, event.motion.y, 0);
break; break;
case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONDOWN:
switch(event.button.button) switch(event.button.button)
@ -434,7 +397,7 @@ void sdlTimer(void)
break; break;
} }
mouseState|=buttonState; mouseState|=buttonState;
KdEnqueueMouseEvent(kdMouseInfo, mouseState|KD_MOUSE_DELTA, 0, 0); KdEnqueuePointerEvent(sdlPointer, mouseState|KD_MOUSE_DELTA, 0, 0, 0);
break; break;
case SDL_MOUSEBUTTONUP: case SDL_MOUSEBUTTONUP:
switch(event.button.button) switch(event.button.button)
@ -450,14 +413,14 @@ void sdlTimer(void)
break; break;
} }
mouseState &= ~buttonState; mouseState &= ~buttonState;
KdEnqueueMouseEvent(kdMouseInfo, mouseState|KD_MOUSE_DELTA, 0, 0); KdEnqueuePointerEvent(sdlPointer, mouseState|KD_MOUSE_DELTA, 0, 0, 0);
break; break;
case SDL_KEYDOWN: case SDL_KEYDOWN:
case SDL_KEYUP: case SDL_KEYUP:
#ifdef DEBUG #ifdef DEBUG
printf("Keycode: %d\n", event.key.keysym.scancode); printf("Keycode: %d\n", event.key.keysym.scancode);
#endif #endif
KdEnqueueKeyboardEvent (event.key.keysym.scancode, event.type==SDL_KEYUP); KdEnqueueKeyboardEvent (sdlKeyboard, event.key.keysym.scancode, event.type==SDL_KEYUP);
break; break;
case SDL_QUIT: case SDL_QUIT:
@ -482,12 +445,9 @@ static void xsdlFini(void)
} }
KdOsFuncs sdlOsFuncs={ KdOsFuncs sdlOsFuncs={
xsdlInit, .Init = xsdlInit,
0, .Fini = xsdlFini,
0, .pollEvents = sdlTimer,
0,
xsdlFini,
sdlTimer
}; };
void OsVendorInit (void) void OsVendorInit (void)