pm_timer.h 811 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. * File : pm_timer.h
  3. * COPYRIGHT (C) 2012-2017, Shanghai Real-Thread Technology Co., Ltd
  4. *
  5. * Change Logs:
  6. * Date Author Notes
  7. * 2017-11-05 realthread the first version
  8. */
  9. #pragma once
  10. #include <pm_widget.h>
  11. #include <sigslot.h>
  12. #include <rtgui/rtgui_system.h>
  13. namespace Persimmon
  14. {
  15. class Timer: private utils::noncopyable<Timer>
  16. {
  17. public:
  18. enum flag
  19. {
  20. ONE_SHOT = RT_TIMER_FLAG_ONE_SHOT,
  21. PERIODIC = RT_TIMER_FLAG_PERIODIC,
  22. SOFT_TIMER = RT_TIMER_FLAG_SOFT_TIMER,
  23. };
  24. Timer(int time, enum flag flag);
  25. ~Timer();
  26. void start();
  27. void stop();
  28. void setTimeout(int time);
  29. Signal<void> timeout;
  30. private:
  31. struct rtgui_timer *m_timer;
  32. static void _onTimeout(struct rtgui_timer *timer, void *parameter);
  33. };
  34. }