Blob Blame Raw

#include "app.h"

#include "common.c"
#include "app.c"
#include "touch.c"
#include "graph.c"
#include "input.c"
#include "keyboard.c"

#include "layout.en.inc.c"
#include "layout.fn.inc.c"
#include "layout.en.full.inc.c"
#include "layout.am.inc.c"
#include "layout.ru.inc.c"

#include <signal.h>


Layout layouts[] = {
  { keysEn, COUNTOF(keysEn) },
  { keysFn, COUNTOF(keysFn) },
  { keysEnFull, COUNTOF(keysEnFull) },
  { keysAm, COUNTOF(keysAm) },
  { keysRu, COUNTOF(keysRu) },
};

App app = {
  { layouts, COUNTOF(layouts) } }; // keyboard


void terminate(int s)
    { appStop(&app, 1); }


int main(int argc, char **argv) {
  const char *touch_dev = argc > 1 ? argv[1] : NULL;

  if (!appInit(&app, touch_dev))
    return 1;
  
  struct sigaction act = {};
  act.sa_handler = &terminate;
  sigaction(SIGHUP, &act, NULL);
  sigaction(SIGINT, &act, NULL);
  sigaction(SIGTERM, &act, NULL);
  
  int success = appRun(&app);
  appDeinit(&app);
  return !success;
}