ARCH ?= arm
TARGET = libSDL-1.2.so.0
-OBJS += main.o pmsdl_input.o \
+OBJS += standalone.o input.o config.o \
common/input.o linux/fbdev.o linux/in_evdev.o linux/oshide.o linux/plat.o
ifeq ($(ARCH),arm)
OBJS += arm_utils.o
else
CFLAGS += -fPIC
endif
-CFLAGS += -DIN_EVDEV
+CFLAGS += -DIN_EVDEV -DSTANDALONE
all: $(TARGET)
clean:
$(RM) $(TARGET) $(OBJS)
-*.o: pmsdl.h
+*.o: omapsdl.h
--- /dev/null
+/*
+ * (C) notaz, 2010
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING file in the top-level directory.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <strings.h>
+#include <ctype.h>
+
+#include "omapsdl.h"
+
+static char *sskip(char *p)
+{
+ while (*p && isspace(*p))
+ p++;
+ return p;
+}
+
+static char *nsskip(char *p)
+{
+ while (*p && !isspace(*p))
+ p++;
+ return p;
+}
+
+static int check_token(const char *p, const char *token)
+{
+ int tlen = strlen(token);
+ return strncasecmp(p, token, tlen) == 0 && isspace(p[tlen]);
+}
+
+void omapsdl_config(void)
+{
+ char buff[256];
+ FILE *f;
+
+ f = fopen("omapsdl.cfg", "r");
+ if (f == NULL)
+ return;
+
+ while (!feof(f)) {
+ char *p, *line = fgets(buff, sizeof(buff), f);
+ if (line == NULL)
+ break;
+ p = line = sskip(line);
+ if (*p == '#')
+ continue;
+
+ if (check_token(p, "bind")) {
+ char *key, *key_end, *sdlkey, *sdlkey_end;
+ key = sskip(p + 5);
+ key_end = nsskip(key);
+ p = sskip(key_end);
+ if (*p != '=')
+ goto bad;
+ sdlkey = sskip(p + 1);
+ sdlkey_end = nsskip(sdlkey);
+ p = sskip(sdlkey_end);
+ if (*key == 0 || *sdlkey == 0 || *p != 0)
+ goto bad;
+ *key_end = *sdlkey_end = 0;
+
+ omapsdl_input_bind(key, sdlkey);
+ continue;
+ }
+
+bad:
+ err("config: failed to parse: %s", line);
+ }
+ fclose(f);
+}
+
+
+/*
+ * (C) notaz, 2010
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING file in the top-level directory.
+ */
+
#include <strings.h>
#include <SDL/SDL.h>
#include <linux/input.h>
-#include "pmsdl.h"
+#include "omapsdl.h"
#include "common/input.h"
static unsigned char g_keystate[SDLK_LAST];
DNKEY(COMPOSE),
};
-void pmsdl_input_bind(const char *kname, const char *sdlname)
+void omapsdl_input_bind(const char *kname, const char *sdlname)
{
int i, kc;
err("can't resolve SDL key '%s'", sdlname);
}
-void pmsdl_input_init(void)
+void omapsdl_input_init(void)
{
in_init();
in_probe();
}
-static int do_event(SDL_Event *event, int timeout)
+int omapsdl_input_get_event(void *event_, int timeout)
{
+ SDL_Event *event = event_;
int key, is_down;
while (1) {
}
/* SDL */
+#ifdef STANDALONE
+
DECLSPEC int SDLCALL
SDL_WaitEvent(SDL_Event *event)
{
trace("%p", event);
- return do_event(event, -1);
+ return omapsdl_input_get_event(event, -1);
}
DECLSPEC int SDLCALL
{
trace("%p", event);
- return do_event(event, 0);
+ return omapsdl_input_get_event(event, 0);
}
DECLSPEC Uint8 * SDLCALL
return NULL;
}
+#endif // STANDALONE
--- /dev/null
+
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
+
+#define err(fmt, ...) fprintf(stderr, "omapsdl: " fmt "\n", ##__VA_ARGS__)
+#define not_supported() fprintf(stderr, "omapsdl: %s not supported\n", __FUNCTION__)
+#if 1
+#define trace(fmt, ...) printf(" %s(" fmt ")\n", __FUNCTION__, ##__VA_ARGS__)
+#define dbg err
+#else
+#define trace(...)
+#define dbg(...)
+#endif
+
+void omapsdl_input_init(void);
+void omapsdl_input_bind(const char *kname, const char *sdlname);
+int omapsdl_input_get_event(void *event_, int timeout);
+
+void omapsdl_config(void);
+
+/* functions for standalone */
+void do_clut(void *dest, void *src, unsigned short *pal, int count);
+++ /dev/null
-
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
-
-#define err(fmt, ...) fprintf(stderr, "psdl: " fmt "\n", ##__VA_ARGS__)
-#define not_supported() fprintf(stderr, "psdl: %s not supported\n", __FUNCTION__)
-#if 0
-#define trace(fmt, ...) printf(" %s(" fmt ")\n", __FUNCTION__, ##__VA_ARGS__)
-#define dbg err
-#else
-#define trace(...)
-#define dbg(...)
-#endif
-
-void pmsdl_input_init(void);
-void pmsdl_input_bind(const char *kname, const char *sdlname);
-
-void do_clut(void *dest, void *src, unsigned short *pal, int count);
+/*
+ * (C) notaz, 2010
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING file in the top-level directory.
+ */
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <strings.h>
-#include <ctype.h>
#include <sys/time.h>
#include <SDL/SDL.h>
-#include "pmsdl.h"
+#include "omapsdl.h"
#include "common/input.h"
#include "linux/fbdev.h"
#include "linux/oshide.h"
return &ret->s;
}
-static char *sskip(char *p)
-{
- while (*p && isspace(*p))
- p++;
- return p;
-}
-
-static char *nsskip(char *p)
-{
- while (*p && !isspace(*p))
- p++;
- return p;
-}
-
-static int check_token(const char *p, const char *token)
-{
- int tlen = strlen(token);
- return strncasecmp(p, token, tlen) == 0 && isspace(p[tlen]);
-}
-
-static void do_config(void)
-{
- char buff[256];
- FILE *f;
-
- f = fopen("pmsdl.cfg", "r");
- if (f == NULL)
- return;
-
- while (!feof(f)) {
- char *p, *line = fgets(buff, sizeof(buff), f);
- if (line == NULL)
- break;
- p = line = sskip(line);
- if (*p == '#')
- continue;
-
- if (check_token(p, "bind")) {
- char *key, *key_end, *sdlkey, *sdlkey_end;
- key = sskip(p + 5);
- key_end = nsskip(key);
- p = sskip(key_end);
- if (*p != '=')
- goto bad;
- sdlkey = sskip(p + 1);
- sdlkey_end = nsskip(sdlkey);
- p = sskip(sdlkey_end);
- if (*key == 0 || *sdlkey == 0 || *p != 0)
- goto bad;
- *key_end = *sdlkey_end = 0;
-
- pmsdl_input_bind(key, sdlkey);
- continue;
- }
-
-bad:
- err("config: failed to parse: %s", line);
- }
- fclose(f);
-}
-
DECLSPEC int SDLCALL
SDL_Init(Uint32 flags)
{
trace("%08x", flags);
if (g_start_ticks == 0) {
- pmsdl_input_init();
+ omapsdl_input_init();
oshide_init();
- do_config();
+ omapsdl_config();
}
g_start_ticks = 0;