1
0

driver.c 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * File : driver.c
  3. * This file is part of RTGUI in RT-Thread RTOS
  4. * COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team
  5. *
  6. * The license and distribution terms for this file may be
  7. * found in the file LICENSE in this distribution or at
  8. * http://www.rt-thread.org/license/LICENSE
  9. *
  10. * Change Logs:
  11. * Date Author Notes
  12. * 2009-10-04 Bernard first version
  13. */
  14. #include <rtgui/driver.h>
  15. struct rtgui_list_node _rtgui_graphic_driver_list = {RT_NULL};
  16. void rtgui_graphic_driver_add(struct rtgui_graphic_driver* driver)
  17. {
  18. rtgui_list_insert(&_rtgui_graphic_driver_list, &(driver->list));
  19. }
  20. void rtgui_graphic_driver_remove(struct rtgui_graphic_driver* driver)
  21. {
  22. rtgui_list_remove(&_rtgui_graphic_driver_list, &(driver->list));
  23. }
  24. struct rtgui_graphic_driver* rtgui_graphic_driver_find(char* name)
  25. {
  26. struct rtgui_list_node* node;
  27. struct rtgui_graphic_driver* driver;
  28. /* search in list */
  29. rtgui_list_foreach(node, &(_rtgui_graphic_driver_list))
  30. {
  31. driver = rtgui_list_entry(node, struct rtgui_graphic_driver, list);
  32. /* find it */
  33. if (rt_strncmp(driver->name, name, RTGUI_NAME_MAX) == 0)
  34. {
  35. return driver;
  36. }
  37. }
  38. return RT_NULL;
  39. }
  40. struct rtgui_graphic_driver* rtgui_graphic_driver_get_default()
  41. {
  42. return rtgui_list_entry(_rtgui_graphic_driver_list.next,
  43. struct rtgui_graphic_driver, list);
  44. }
  45. void rtgui_graphic_driver_get_rect(struct rtgui_graphic_driver *driver, rtgui_rect_t *rect)
  46. {
  47. if (rect == RT_NULL || driver == RT_NULL) return;
  48. rect->x1 = rect->y1 = 0;
  49. rect->x2 = driver->width;
  50. rect->y2 = driver->height;
  51. }
  52. void rtgui_graphic_driver_get_default_rect(rtgui_rect_t *rect)
  53. {
  54. /* return default the extent of default driver */
  55. rtgui_graphic_driver_get_rect(rtgui_graphic_driver_get_default(), rect);
  56. }