WWColorMap.c 2.3 KB

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