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

#ifndef _ATMO_OUTPUT_H
#define _ATMO_OUTPUT_H

// --- cAtmoOutput ------------------------------------------------------------

class cAtmoOutput {
public:
  virtual ~cAtmoOutput() {};
  
  // Opens the output-device. Parameters (e.g. the device-name) can be given in 'param'.
  // Returns true if the output-device was opened successfully.
  virtual bool Open(const char* param) = 0;

  // Closes the output-device.
  // Returns true if the output-device was closed successfully.
  virtual bool Close(void) = 0;
  
  // Sends the given tColorPacket to the output-device.
  // Returns true if the tColorPacket was send successfully.
  virtual bool OutputColors(const tColorPacket col) = 0;
};

#endif //_ATMO_OUTPUT_H
