/src/backend/native/ftk_backend_gles.c

http://ftk.googlecode.com/ · C · 69 lines · 59 code · 9 blank · 1 comment · 14 complexity · f2623030768b74c97b1266aefb83e357 MD5 · raw file

  1. #include "ftk_log.h"
  2. #include "ftk_globals.h"
  3. #include "ftk_display_gles.h"
  4. #include "ftk_source_input.h"
  5. #include "ftk_wnd_manager.h"
  6. #include "ftk_source_tslib.h"
  7. static Ret ftk_init_input(void)
  8. {
  9. char filename[260] = {0};
  10. const char* tsdev = NULL;
  11. FtkSource* source = NULL;
  12. struct dirent* iter = NULL;
  13. DIR* dir = opendir("/dev/input");
  14. return_val_if_fail(dir != NULL, RET_FAIL);
  15. tsdev = getenv("FTK_TSLIB_FILE") ? getenv("FTK_TSLIB_FILE") : FTK_TSLIB_FILE;
  16. while((iter = readdir(dir)) != NULL)
  17. {
  18. if(iter->d_name[0] == '.') continue;
  19. if(!(iter->d_type & DT_CHR)) continue;
  20. ftk_snprintf(filename, sizeof(filename), "/dev/input/%s", iter->d_name);
  21. #ifdef USE_TSLIB
  22. if(strcmp(filename, tsdev) == 0)
  23. {
  24. /*skip tsdev now, open it later.*/
  25. continue;
  26. }
  27. else
  28. #endif
  29. {
  30. source = ftk_source_input_create(filename,
  31. (FtkOnEvent)ftk_wnd_manager_queue_event_auto_rotate, ftk_default_wnd_manager());
  32. }
  33. if(source != NULL)
  34. {
  35. ftk_sources_manager_add(ftk_default_sources_manager(), source);
  36. }
  37. }
  38. closedir(dir);
  39. #ifdef USE_TSLIB
  40. source = ftk_source_tslib_create(tsdev,
  41. (FtkOnEvent)ftk_wnd_manager_queue_event_auto_rotate, ftk_default_wnd_manager());
  42. if(source != NULL)
  43. {
  44. ftk_sources_manager_add(ftk_default_sources_manager(), source);
  45. }
  46. ftk_logd("%s: tsdev %s source=%p\n", __func__, tsdev, source);
  47. #endif
  48. return RET_OK;
  49. }
  50. Ret ftk_backend_init(int argc, char* argv[])
  51. {
  52. ftk_init_input();
  53. ftk_set_display(ftk_display_gles_create());
  54. if(ftk_default_display() == NULL)
  55. {
  56. ftk_loge("open display failed.\n");
  57. exit(0);
  58. }
  59. return RET_OK;
  60. }