Class RecorderTriggerData

java.lang.Object
SoundRecorder.trigger.RecorderTriggerData
All Implemented Interfaces:
Serializable, Cloneable, ManagedParameters
Direct Known Subclasses:
ClickRecorderTriggerData, WMRecorderTriggerData

public class RecorderTriggerData extends Object implements Serializable, Cloneable, ManagedParameters
Information for triggered recordings to tell each recorder how long a recording it should make.

If a recording is already running when a RecorderTrigger is sent, then the recording will continue, ending at the later of the existing stop time (if recoring on a timer or on a different trigger) or the time indicated in RecorderTriggerData. If a continuous recording is being made, then that recording will simply continue.

If no recording is being made, then the recorder will take data from the buffer for secondsBeforeTrigger seconds to add to the start of the recording. Note that recordings NEVER overlap, so if secondsBeforeTrigger were set to say, 30s, and the previous recoridng had only ended 10 seconds earlier, then only 10s of data will be taken from the buffer.

Each recorder will ensure that adequate raw audio data is stored in the source data block to satisfy secondsBeforeTrigger in every trigger. Therefore, if secondsBeforeTrigger is set to a large value, excessive amounts of memory may be required to store the data, particularly at high frequencies.

Information from RecorderTriggerData is read when the recording is made, so it is possible to update the fields secondsBeforeTrigger and secondsAfterTrigger after the RecorderTrigger has been registered with the recorders, although time may be required for the buffer to fill if secondsBeforeTrigger is increased.

Author:
Doug Gillespie
See Also:
  • Field Details

  • Constructor Details

    • RecorderTriggerData

      public RecorderTriggerData(String triggerName, double secondsBeforeTrigger, double secondsAfterTrigger)
  • Method Details

    • getDecisionMaker

      public TriggerDecisionMaker getDecisionMaker()
    • clone

      public RecorderTriggerData clone()
    • getSecondsBeforeTrigger

      public double getSecondsBeforeTrigger()
      Returns:
      the secondsBeforeTrigger
    • setSecondsBeforeTrigger

      public void setSecondsBeforeTrigger(double secondsBeforeTrigger)
      Parameters:
      secondsBeforeTrigger - the secondsBeforeTrigger to set
    • getSecondsAfterTrigger

      public double getSecondsAfterTrigger()
      Returns:
      the secondsAfterTrigger
    • setSecondsAfterTrigger

      public void setSecondsAfterTrigger(double secondsAfterTrigger)
      Parameters:
      secondsAfterTrigger - the secondsAfterTrigger to set
    • getMinDetectionCount

      public int getMinDetectionCount()
      Returns:
      the minDetectionCount
    • setMinDetectionCount

      public void setMinDetectionCount(int minDetectionCount)
      Parameters:
      minDetectionCount - the minDetectionCount to set
    • getCountSeconds

      public int getCountSeconds()
      Returns:
      the countSeconds
    • setCountSeconds

      public void setCountSeconds(int countSeconds)
      Parameters:
      countSeconds - the countSeconds to set
    • getMinGapBetweenTriggers

      public int getMinGapBetweenTriggers()
      Returns:
      the minGapBetweenTriggers
    • setMinGapBetweenTriggers

      public void setMinGapBetweenTriggers(int minGapBetweenTriggers)
      Parameters:
      minGapBetweenTriggers - the minGapBetweenTriggers to set
    • getMaxTotalTriggerLength

      public int getMaxTotalTriggerLength()
      Returns:
      the maxTotalTriggerLength
    • setMaxTotalTriggerLength

      public void setMaxTotalTriggerLength(int maxTotalTriggerLength)
      Parameters:
      maxTotalTriggerLength - the maxTotalTriggerLength to set
    • getTriggerName

      public String getTriggerName()
      Returns:
      the triggerName
    • setEnabled

      public void setEnabled(boolean enabled)
      Parameters:
      enabled - the enabled to set
    • isEnabled

      public boolean isEnabled()
      Returns:
      the enabled
    • setDayBudgetMB

      public void setDayBudgetMB(int dayBudgetMB)
      Parameters:
      dayBudgetMB - the dayBudgetMB to set
    • getDayBudgetMB

      public int getDayBudgetMB()
      Returns:
      the dayBudgetMB
    • getSummaryString

      public String getSummaryString()
    • getParameterSet

      public PamParameterSet getParameterSet()
      Get the auto-generated parameter set, and then add in the fields that are not included because they are not public and do not have getters. Note: for each field, we search the current class and (if that fails) the superclass. It's done this way because RecorderTriggerData might be used directly (and thus the field would be found in the class) and it also might be used as a superclass to something else (e.g. WMRecorderTriggerData) in which case the field would only be found in the superclass.
      Specified by:
      getParameterSet in interface ManagedParameters
      Returns:
      description of the parameters in a class.