Changeset 1941:339d957d24ad in roaraudio


Ignore:
Timestamp:
06/06/09 15:46:51 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added some basic functions for color operations

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • include/libroarlight/colors.h

    r1939 r1941  
    5959//#define ROAR_COLOR_TYPE_              0x0100 
    6060 
     61#define ROAR_COLORSYSTEM_NONE          (ROAR_COLOR_TYPE_NONE) 
    6162#define ROAR_COLORSYSTEM_GRAY          (ROAR_COLOR_TYPE_K) 
    6263#define ROAR_COLORSYSTEM_RGB           (ROAR_COLOR_TYPE_R|ROAR_COLOR_TYPE_G|ROAR_COLOR_TYPE_B) 
     
    102103//#define roar_color_new_rgb(color,r,g,b) (color)->system = ROAR_COLORSYSTEM_RGB; (color)->color.rgb.r = (r); (color)->color.rgb.b = (g); (color)->color.rgb.b = (b) 
    103104 
     105int roar_color_new        (struct roar_color * c); 
    104106int roar_color_new_gray   (struct roar_color * c, unsigned char k); 
    105107int roar_color_new_rgb    (struct roar_color * c, unsigned char r, unsigned char g, unsigned char b); 
  • libroarlight/colors.c

    r1940 r1941  
    2525#include "libroarlight.h" 
    2626 
     27int roar_color_new        (struct roar_color * c) { 
     28 if ( c == NULL ) 
     29  return -1; 
     30 
     31 memset(c, 0, sizeof(struct roar_color)); 
     32 
     33 c->system = ROAR_COLORSYSTEM_NONE; 
     34 
     35 return 0; 
     36} 
     37 
     38int roar_color_new_gray   (struct roar_color * c, unsigned char k) { 
     39 if ( roar_color_new(c) == -1 ) 
     40  return -1; 
     41 
     42 c->system = ROAR_COLORSYSTEM_GRAY; 
     43 
     44 c->color.gray.k = k; 
     45 
     46 return 0; 
     47} 
     48 
     49int roar_color_new_rgb    (struct roar_color * c, unsigned char r, unsigned char g, unsigned char b) { 
     50 if ( roar_color_new(c) == -1 ) 
     51  return -1; 
     52 
     53 c->system = ROAR_COLORSYSTEM_RGB; 
     54 
     55 c->color.rgb.r = r; 
     56 c->color.rgb.g = g; 
     57 c->color.rgb.b = b; 
     58 
     59 return 0; 
     60} 
     61 
     62int roar_color_copy       (struct roar_color * dst, struct roar_color * src) { 
     63 if ( dst == NULL || src == NULL ) 
     64  return -1; 
     65 
     66 memcpy(dst, src, sizeof(struct roar_color)); 
     67 
     68 return 0; 
     69} 
     70 
     71int roar_color_conv       (struct roar_color * c, uint32_t system) { 
     72 if ( c == NULL ) 
     73  return -1; 
     74 
     75 switch (c->system) { 
     76  case ROAR_COLORSYSTEM_GRAY: 
     77    return roar_color_conv_gray(c, system); 
     78   break; 
     79  case ROAR_COLORSYSTEM_RGB: 
     80    return roar_color_conv_rgb(c, system); 
     81   break; 
     82 } 
     83 
     84 return -1; 
     85} 
     86 
     87int roar_color_conv_gray  (struct roar_color * c, uint32_t system) { 
     88 unsigned char k; 
     89 
     90 if ( c == NULL ) 
     91  return -1; 
     92 
     93 if ( c->system != ROAR_COLORSYSTEM_GRAY ) 
     94  return -1; 
     95 
     96 switch (system) { 
     97  case ROAR_COLORSYSTEM_RGB: 
     98    k = c->color.gray.k; 
     99    c->color.rgb.r = k; 
     100    c->color.rgb.g = k; 
     101    c->color.rgb.b = k; 
     102    c->system = ROAR_COLORSYSTEM_RGB; 
     103    return 0; 
     104   break; 
     105 } 
     106 
     107 return -1; 
     108} 
     109 
     110int roar_color_conv_rgb   (struct roar_color * c, uint32_t system) { 
     111 if ( c == NULL ) 
     112  return -1; 
     113 
     114 if ( c->system != ROAR_COLORSYSTEM_GRAY ) 
     115  return -1; 
     116 
     117 switch (system) { 
     118 } 
     119 
     120 return -1; 
     121} 
     122 
    27123//ll 
Note: See TracChangeset for help on using the changeset viewer.