FT8DemodSettings:
  description: FT8Demod
  properties:
    inputFrequencyOffset:
      type: integer
      format: int64
    filterIndex:
      type: integer
    spanLog2:
      type: integer
    rfBandwidth:
      type: number
      format: float
    lowCutoff:
      type: number
      format: float
    fftWindow:
      type: integer
      description: >
        FFT Window index (FFTWindow::Function):
          * 0 - Bartlett
          * 1 - Blackman-Harris 4 term
          * 2 - Flattop
          * 3 - Hamming
          * 4 - Hanning
          * 5 - Rectangle
          * 6 - Kaiser
          * 7 - Blackman 3 term
          * 8 - Blackman-Harris 7 term
    volume:
      type: number
      format: float
    agc:
      description: AGC (1 if AGC active else 0)
      type: integer
    recordWav:
      type: integer
      description: >
        Record received audio as 12000S/s 16 bit .wav file
          * 0 - Do not record
          * 1 - Record as sdrangel/ft8/save/YYYYMMDD_HHMMSS.wav in writable location
    logMessages:
      type: integer
      description: >
        Log decoded messages in WSJT CALL.TXT format
          * 0 - Do not log messages
          * 1 - Log messages as sdrangel/ft8/logs/YYYYMMDD_call.txt in writable location (daily files)
    nbDecoderThreads:
      type: integer
      description: Number of threads in the FT8 decoder
    decoderTimeBudget:
      type: number
      format: float
      description: Decoder time budget in seconds (will stop after running this time)
    useOSD:
      type: integer
      description: >
        Use Ordered Statistics Decoding (OSD) to decode messages if some LDPC bits are invalid
          * 0 - Disable
          * 1 - Enable
    osdDepth:
      type: integer
      description: OSD depth (recommended between 0 and 6)
    osdLDPCThreshold:
      type: integer
      description: minimum of valid LDPC bits (out of 83) necessary to activate OSD
    verifyOSD:
      type: integer
      description: >
        Verify OSD decoded message against a list of validated callsigns
          * 0 - Disable
          * 1 - Enable
    enablePSKReporter:
      type: integer
      description: >
        Enable reporting of decoded messages to PSK Reporter server
          * 0 - Disable
          * 1 - Enable
    pskReporterCallsign:
      type: string
    pskReporterLocator:
      type: string
    pskReporterSoftware:
      type: string
    rgbColor:
      type: integer
    title:
      type: string
    streamIndex:
      description: MIMO channel. Not relevant when connected to SI (single Rx).
      type: integer
    useReverseAPI:
      description: Synchronize with reverse API (1 for yes, 0 for no)
      type: integer
    reverseAPIAddress:
      type: string
    reverseAPIPort:
      type: integer
    reverseAPIDeviceIndex:
      type: integer
    reverseAPIChannelIndex:
      type: integer
    spectrumConfig:
      $ref: "/doc/swagger/include/GLSpectrum.yaml#/GLSpectrum"
    channelMarker:
      $ref: "/doc/swagger/include/ChannelMarker.yaml#/ChannelMarker"
    rollupState:
      $ref: "/doc/swagger/include/RollupState.yaml#/RollupState"

FT8DemodReport:
  description: FT8Demod
  properties:
    channelPowerDB:
      description: power received in channel (dB)
      type: number
      format: float
    squelch:
      description: Audio squelch status (1 if open else 0)
      type: integer
    channelSampleRate:
      type: integer
