/*
 * defs.h: Common definitions for the Atmolight-plugin
 *
 * See the README file for copyright information and how to reach the author.
 *
 * $Id$
 */

#ifndef _ATMO_DEFS_H
#define _ATMO_DEFS_H

// channel-numbers
// 0 = center
// 1 = left
// 2 = right
// 3 = top
// 4 = bottom

// --- enums ------------------------------------------------------------------

typedef enum
{
  black = 0,
  white,
  red,
  green,
  blue,
  yellow,
  cyan,
  magenta
} tDefaultColors;

typedef enum
{
  center = 0,
  left,
  right,
  top,
  bottom,
  no_pos,
  all,
} tPosition;

typedef enum
{
  live_picture_hsv = 0,
  default_color,
  static_color,
} tMode;

typedef enum
{
  no_input = 0,
  ffdvb,
  softdevice
} tInput;

typedef enum
{
  no_output = 0,
  serial,
  network
} tOutput;

typedef enum
{
  no_filter = 0,
  combined,
  percent
} tFilter;

typedef enum
{
  no_gamma = 0,
  by_color
} tGamma;

// --- structs ----------------------------------------------------------------

// --- tRGBColor --------------------------------------------------------------
typedef struct
{
  unsigned char r, g, b;
} tRGBColor;

// --- tColorPacket -----------------------------------------------------------
typedef struct
{
  tRGBColor channel[5];
} tColorPacket;

// --- tRGBColorLongInt -------------------------------------------------------
typedef struct
{
  long int r, g, b;
} tRGBColorLongInt;

// --- tColorPacketLongInt ----------------------------------------------------
typedef struct
{
  tRGBColorLongInt channel[5];
} tColorPacketLongInt;

// --- tWeightPacket ----------------------------------------------------------
typedef struct
{
  int channel[5];
} tWeightPacket;

// --- tHSVColor --------------------------------------------------------------
typedef struct
{
  unsigned char h, s, v;
} tHSVColor;

#endif //_ATMO_DEFS_H
