#include "CameraDmObjects.h"
#include "DmUtils.h"

CameraDmObjects::CameraDmObjects(const char *cameraDmPrefix)
{
  char itemName[MaxDmNameLen];
  strcpy(itemName, cameraDmPrefix);
  char *namePtr = itemName + strlen(itemName);
  
  strcpy(namePtr, GainRequestName);
  gainRequest = new DmEnumObject(itemName);

  strcpy(namePtr, GainStatusName);
  gainStatus = new DmEnumObject(itemName);

  strcpy(namePtr, ColorBarsRequestName);
  colorBarsRequest = new DmBooleanObject(itemName);

  strcpy(namePtr, ColorBarsStatusName);
  colorBarsStatus = new DmBooleanObject(itemName);
  
  strcpy(namePtr, ZoomRequestName);
  zoomRequest = new DmInt16Object(itemName);
  
  strcpy(namePtr, ZoomStatusName);
  zoomStatus = new DmInt16Object(itemName);

  strcpy(namePtr, FocusRequestName);
  focusRequest = new DmInt16Object(itemName);

  strcpy(namePtr, FocusStatusName);
  focusStatus = new DmInt16Object(itemName);

  strcpy(namePtr, IrisRequestName);
  irisRequest = new DmInt16Object(itemName);

  strcpy(namePtr, IrisStatusName);
  irisStatus = new DmInt16Object(itemName);

  strcpy(namePtr, AutoIrisRequestName);
  autoIrisRequest = new DmBooleanObject(itemName);

  strcpy(namePtr, AutoIrisStatusName);
  autoIrisStatus = new DmBooleanObject(itemName);
  
  strcpy(namePtr, RedPedestalRequestName);
  redPedestalRequest = new DmInt16Object(itemName);

  strcpy(namePtr, RedPedestalStatusName);
  redPedestalStatus = new DmInt16Object(itemName);

  strcpy(namePtr, BluePedestalRequestName);
  bluePedestalRequest = new DmInt16Object(itemName);

  strcpy(namePtr, BluePedestalStatusName);
  bluePedestalStatus = new DmInt16Object(itemName);

  strcpy(namePtr, TotalPedestalRequestName);
  totalPedestalRequest = new DmInt16Object(itemName);

  strcpy(namePtr, TotalPedestalStatusName);
  totalPedestalStatus = new DmInt16Object(itemName);

  strcpy(namePtr, RedGainRequestName);
  redGainRequest = new DmInt16Object(itemName);

  strcpy(namePtr, RedGainStatusName);
  redGainStatus = new DmInt16Object(itemName);

  strcpy(namePtr, BlueGainRequestName);
  blueGainRequest = new DmInt16Object(itemName);

  strcpy(namePtr, BlueGainStatusName);
  blueGainStatus = new DmInt16Object(itemName);

  strcpy(namePtr, ServerAliveName);
  serverAlive = new DmEmptyObject(itemName);
}


CameraDmObjects::~CameraDmObjects()
{
}


MBool CameraDmObjects::serverIsAlive()
{
  return HAS_PRVDR(serverAlive->getHandle());
}


