WWColorMap.c 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*****************************************************************************/
  2. /* ここから */
  3. /*****************************************************************************/
  4. #include "WWColorMapP.h"
  5. #include "WonX.h"
  6. /*****************************************************************************/
  7. /* メンバ関数の定義 */
  8. /*****************************************************************************/
  9. WWColorMap WWColorMap_Create(int * lcd_colors)
  10. {
  11. WWColorMap color_map;
  12. color_map = (WWColorMap)malloc(sizeof(_WWColorMap));
  13. if (color_map == NULL)
  14. WonX_Error("WWColorMap_Create", "Cannot allocate memory");
  15. WWColorMap_SetLCDColors(color_map, lcd_colors);
  16. return (color_map);
  17. }
  18. WWColorMap WWColorMap_Destroy(WWColorMap color_map)
  19. {
  20. if (color_map == NULL)
  21. WonX_Error("WWColorMap_Destroy", "Object is not created.");
  22. free(color_map);
  23. return (NULL);
  24. }
  25. int * WWColorMap_GetLCDColors(WWColorMap color_map, int * lcd_colors)
  26. {
  27. int i;
  28. for (i = 0; i < 8; i++) {
  29. lcd_colors[i] = WWColorMap_GetLCDColor(color_map, i);
  30. }
  31. return (lcd_colors);
  32. }
  33. int WWColorMap_SetLCDColors(WWColorMap color_map, int * lcd_colors)
  34. {
  35. int i;
  36. for (i = 0; i < 8; i++) {
  37. if (lcd_colors == NULL) {
  38. WWColorMap_SetLCDColor(color_map, i, (i * 2) + ((i == 7) ? 1 : 0));
  39. } else {
  40. WWColorMap_SetLCDColor(color_map, i, lcd_colors[i]);
  41. }
  42. }
  43. return (0);
  44. }
  45. int WWColorMap_GetLCDColor(WWColorMap color_map, int color)
  46. {
  47. return (color_map->lcd_color[color]);
  48. }
  49. int WWColorMap_SetLCDColor(WWColorMap color_map, int color, int lcd_color)
  50. {
  51. return (color_map->lcd_color[color] = lcd_color);
  52. }
  53. int WWColorMap_PrintData(WWColorMap c, FILE * f)
  54. {
  55. int i;
  56. fprintf(f, "\n");
  57. for (i = 0; i < 8; i++) {
  58. fprintf(f, "colormap :\tcolor[%01d] = %d\n",
  59. i, WWColorMap_GetLCDColor(c, i));
  60. }
  61. fflush(f);
  62. return (0);
  63. }
  64. /*****************************************************************************/
  65. /* ここまで */
  66. /*****************************************************************************/
  67. /*****************************************************************************/
  68. /* End of File. */
  69. /*****************************************************************************/