#ifndef _LAPBOXTASKCONTROL_H
#define _LAPBOXTASKCONTROL_H

#define __STDC__

#include "TaskControl.h"
#include "Iview.h"
#include "DataManager.h"
#include "LapBoxMicro.h"

// class used to pass Lapbox setting info between tasks
class LapBoxTaskControl : public TaskControl
{ 
  public:
  LapBoxTaskControl(const char* name, int nTasks, LapBoxMicro *micro, 
                    const char* dmPrefix);

  ~LapBoxTaskControl();

  const char* name(){
    return _name;
  }

  const char* prefix(){
    return _dmPrefix;
  }

  // SRQ Task Pid 
  pid_t SRQTaskPid;
  // Panoramic mode var
  MBool panoramic;

  // Set pan/tilt device mask 
  void setPanTilts(unsigned short mask);

  // Get pan/tilt device mask 
  unsigned short getPanTilts();

  void setCamera(IviewDevice camera);

  IviewDevice getCamera();

  MBool getEnabled();

  void setEnabled(MBool state);

  MBool getAutoIris();

  void setAutoIris(MBool state);

  IviewSensitivity getSensitivity();

  void setSensitivity(IviewSensitivity state);
 
  MBool getMemory();

  void setMemory(MBool state);

  int serialChanNo()
  {
    return 0;
  }
  
  protected:
  unsigned short  _panTilts;
  IviewDevice     _camera;
  char*           _name;
  char*           _dmPrefix;
  MBool           _enabled;

  MBool           _panoramic;

  DmBooleanObject *_dmAutoIris;
  DmBooleanObject *_dmMemory;
  DmEnumObject    *_dmSensitivity;

};  
#endif  
















