events.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. // #include <cstdlib>
  2. // #include <ctime>
  3. // #include "Crown.h"
  4. // #include "EventBuffer.h"
  5. // #include "OsTypes.h"
  6. // #include "Mouse.h"
  7. // #include "OsThread.h"
  8. // #include "Log.h"
  9. // using namespace crown;
  10. // EventBuffer* g_write;
  11. // EventBuffer* g_read;
  12. // OsThread g_thread("consumer-thread");
  13. // Semaphore g_write_sem;
  14. // Semaphore g_read_sem;
  15. // bool g_exit = false;
  16. // //-----------------------------------------------------------------------------
  17. // void push_event(int32_t x, int32_t y)
  18. // {
  19. // OsMouseEvent ome;
  20. // ome.button = MouseButton::LEFT;
  21. // ome.x = x;
  22. // ome.y = y;
  23. // ome.pressed = true;
  24. // g_write->push_event((uint32_t)OsEvent::MOUSE, &ome, sizeof(OsMouseEvent));
  25. // Log::i("Event pushed");
  26. // }
  27. // //-----------------------------------------------------------------------------
  28. // void swap()
  29. // {
  30. // EventBuffer* tmp;
  31. // tmp = g_write;
  32. // g_write = g_read;
  33. // g_read = tmp;
  34. // Log::i("Buffers swapped");
  35. // }
  36. // //-----------------------------------------------------------------------------
  37. // int32_t thread_proc(void* /*user_data*/)
  38. // {
  39. // static uint32_t count = 0;
  40. // OsMouseEvent* result;
  41. // uint32_t et; size_t es;
  42. // while (true)
  43. // {
  44. // Log::i("%p", g_read);
  45. // do
  46. // {
  47. // result = (OsMouseEvent*)g_read->get_next_event(et, es);
  48. // if (result != NULL)
  49. // {
  50. // Log::d("x: %d, y: %d", result->x, result->y);
  51. // }
  52. // }
  53. // while (result != NULL);
  54. // g_exit = ++count == 3 ? true : false;
  55. // g_read->clear();
  56. // g_write_sem.post();
  57. // g_read_sem.wait();
  58. // }
  59. // return 0;
  60. // }
  61. // //-----------------------------------------------------------------------------
  62. // int main()
  63. // {
  64. // memory::init();
  65. // g_write = CE_NEW(default_allocator(), EventBuffer);
  66. // g_read = CE_NEW(default_allocator(), EventBuffer);
  67. // g_thread.start(thread_proc);
  68. // while (!g_exit)
  69. // {
  70. // g_write_sem.wait();
  71. // push_event(10, 10);
  72. // push_event(20, 20);
  73. // push_event(30, 30);
  74. // swap();
  75. // g_read_sem.post();
  76. // }
  77. // g_thread.stop();
  78. // memory::shutdown();
  79. // return 0;
  80. // }
  81. int main() {}