Skip to content

OcaDelayExtended#

This document describes the device side implementation of OcaDelayExtended. This class is documented in the AES70 standard as:

Signal delay - extended version. Allows setting delay value in various units. Note that the inherited property 04p01 DelayTime is also supported by this class and reflects actual achieved delay in seconds. This class is deprecated in AES70-2022.


Overview#

Class Declaration#

The device side implementation has the following signature.

namespace aes70::device
{
  template <class Implementation>
  class OcaDelayExtended : public OcaDelay<Implementation>
  {

  };
}

The template argument Implementation may implement the following methods.

Note

The signatures given here are just one possibility and that most methods are optional. Implement only those methods which make sense in the context of your device. See the documentation in Implementing AES70 Classes for more details.

class MyOcaDelayExtendedImplementation
{
  // Methods defined by OcaDelayExtended
  std::tuple<OcaDelayValue,OcaDelayValue,OcaDelayValue> GetDelayValue();
  void SetDelayValue(OcaDelayValue Value);
  OcaDelayValue GetDelayValueConverted(OcaDelayUnit UoM);

  // Methods defined by OcaDelay
  std::tuple<OcaTimeInterval,OcaTimeInterval,OcaTimeInterval> GetDelayTime();
  void SetDelayTime(OcaTimeInterval delayTime);

  // Methods defined by OcaWorker
  OcaBoolean GetEnabled();
  void SetEnabled(OcaBoolean enabled);
  OcaPortID AddPort(OcaString Name, OcaIODirection Mode);
  void DeletePort(OcaPortID ID);
  OcaList<OcaPort> GetPorts();
  OcaString GetPortName(OcaPortID PortID);
  void SetPortName(OcaPortID ID, OcaString Name);
  OcaString GetLabel();
  void SetLabel(OcaString label);
  OcaONo GetOwner();
  OcaTimeInterval GetLatency();
  void SetLatency(OcaTimeInterval latency);
  std::tuple<OcaRolePath,OcaONoPath> GetPath();
  OcaMap<OcaPortID, OcaPortClockMapEntry> GetPortClockMap();
  void SetPortClockMap(OcaMap<OcaPortID, OcaPortClockMapEntry> Map);
  OcaPortClockMapEntry GetPortClockMapEntry(OcaPortID ID);
  void SetPortClockMapEntry(OcaPortID PortID, OcaPortClockMapEntry Entry);
  void DeletePortClockMapEntry(OcaPortID ID);

  // Methods defined by OcaRoot
  OcaBoolean GetLockable();
  void SetLockNoReadWrite();
  void Unlock();
  OcaString GetRole();
  void SetLockNoWrite();
  OcaLockState GetLockState();

};

Events#