/*
 * setup.h: The setup-class for the Atmolight-plugin
 *
 * See the README file for copyright information and how to reach the author.
 *
 * $Id$
 */

#ifndef _ATMO_SETUP__H
#define _ATMO_SETUP__H

// --- cAtmoSetup -------------------------------------------------------------

class cAtmoSetup {
public:
  char *output_arg;   // for sending data
  tInput  AtmoInput;  // input device
  tOutput AtmoOutput; // output device

  // internal status
  bool atmo_on;            // Atmolight on/off
  bool DoWhiteCalibration; // white calibration on/off
  bool HasCmdLineArgs;     // command line arguments given?

  // saved parameters
  int StartMode;      // Atmoligt start mode: on, off, timer dependent
  int WidescreenMode; // cut top and bottom of the pic before calculation?
  
  tMode Mode;        // Atmolight-mode
  int EdgeWeighting; // weighting of distance to edge
  int BrightCorrect; // brightness correction
  int DarknessLimit; // darkness limit
  int HueWinSize;    // Windowing size for hue histogram building
  int SatWinSize;    // Windowing size for sat histogram building

  tDefaultColors DefaultColor; // default color
  tColorPacket StaticColor;    // static color

  // Filter
  tFilter Filter_Mode;      // filter mode: 0=off, 1=combined, 2=percent
  int Filter_MeanLength;    // length of floating mean value filter
  int Filter_MeanThreshold; // threshold of the mean value filter
  int Filter_PercentNew;    // percentage of new color (for filtering)

  // Gamma
  tGamma Gamma_Mode; // gamma mode: 0=off, 1=by color
  tRGBColor Gamma;   // gamma correction values

  // White Calibration
  tRGBColor WhiteCalibration;

  cAtmoSetup();
  void SetDefault(tDefaultColors col);
  void SetStatic(tPosition pos, tRGBColor col);
};
extern cAtmoSetup AtmoSetup;

#endif // _ATMO_SETUP__H
