# Module `ammosreader.AmmosExtendedAudioDataHeader`

I provide an Ammos extended data header for audio data frames.

Expand source code

    """I provide an Ammos extended data header for audio data frames."""

    import struct
    from ammosreader.AmmosAudioDataHeader import AmmosAudioDataHeader

    class AmmosExtendedAudioDataHeader:

        HEADER_SIZE = 44  # 11 words

        @classmethod
        def from_bytes(cls, bytes):
            """I return a new AMMOS extended data header for audio frames built from given bytes."""
            assert len(bytes) == cls.HEADER_SIZE
            standard_header = AmmosAudioDataHeader.from_bytes(bytes[0:AmmosAudioDataHeader.HEADER_SIZE])
            extended_header_elements = struct.unpack('<Q', bytes[AmmosAudioDataHeader.HEADER_SIZE:])
            timestamp = extended_header_elements[0]
            sample_rate = standard_header.sample_rate
            status = standard_header.status
            frequency = standard_header.frequency
            demod_bandwidth = standard_header.demod_bandwidth
            demod_type = standard_header.demod_type
            number_of_samples = standard_header.number_of_samples
            number_of_channels = standard_header.number_of_channels
            sample_size = standard_header.sample_size
            return AmmosExtendedAudioDataHeader(sample_rate, status, frequency, demod_bandwidth, demod_type,
                                                number_of_samples, number_of_channels, sample_size, timestamp)

        def __init__(self, sample_rate, status, frequency, demod_bandwidth, demod_type,
                     number_of_samples, number_of_channels, sample_size, timestamp):
            """I return a new AMMOS extended data header for audio frames built from given parameters."""
            self.sample_rate = sample_rate
            self.status = status
            self.frequency = frequency
            self.demod_bandwidth = demod_bandwidth
            self.demod_type = demod_type
            self.number_of_samples = number_of_samples
            self.number_of_channels = number_of_channels
            self.sample_size = sample_size
            self.timestamp = timestamp

## Classes

`class AmmosExtendedAudioDataHeader (sample_rate, status, frequency, demod_bandwidth, demod_type, number_of_samples, number_of_channels, sample_size, timestamp)`

  I return a new AMMOS extended data header for audio frames built from given parameters.

  Expand source code

      class AmmosExtendedAudioDataHeader:

          HEADER_SIZE = 44  # 11 words

          @classmethod
          def from_bytes(cls, bytes):
              """I return a new AMMOS extended data header for audio frames built from given bytes."""
              assert len(bytes) == cls.HEADER_SIZE
              standard_header = AmmosAudioDataHeader.from_bytes(bytes[0:AmmosAudioDataHeader.HEADER_SIZE])
              extended_header_elements = struct.unpack('<Q', bytes[AmmosAudioDataHeader.HEADER_SIZE:])
              timestamp = extended_header_elements[0]
              sample_rate = standard_header.sample_rate
              status = standard_header.status
              frequency = standard_header.frequency
              demod_bandwidth = standard_header.demod_bandwidth
              demod_type = standard_header.demod_type
              number_of_samples = standard_header.number_of_samples
              number_of_channels = standard_header.number_of_channels
              sample_size = standard_header.sample_size
              return AmmosExtendedAudioDataHeader(sample_rate, status, frequency, demod_bandwidth, demod_type,
                                                  number_of_samples, number_of_channels, sample_size, timestamp)

          def __init__(self, sample_rate, status, frequency, demod_bandwidth, demod_type,
                       number_of_samples, number_of_channels, sample_size, timestamp):
              """I return a new AMMOS extended data header for audio frames built from given parameters."""
              self.sample_rate = sample_rate
              self.status = status
              self.frequency = frequency
              self.demod_bandwidth = demod_bandwidth
              self.demod_type = demod_type
              self.number_of_samples = number_of_samples
              self.number_of_channels = number_of_channels
              self.sample_size = sample_size
              self.timestamp = timestamp

  ### Class variables

  `var HEADER_SIZE`

  ### Static methods

  `def from_bytes(bytes)`

    I return a new AMMOS extended data header for audio frames built from given bytes.

    Expand source code

        @classmethod
        def from_bytes(cls, bytes):
            """I return a new AMMOS extended data header for audio frames built from given bytes."""
            assert len(bytes) == cls.HEADER_SIZE
            standard_header = AmmosAudioDataHeader.from_bytes(bytes[0:AmmosAudioDataHeader.HEADER_SIZE])
            extended_header_elements = struct.unpack('<Q', bytes[AmmosAudioDataHeader.HEADER_SIZE:])
            timestamp = extended_header_elements[0]
            sample_rate = standard_header.sample_rate
            status = standard_header.status
            frequency = standard_header.frequency
            demod_bandwidth = standard_header.demod_bandwidth
            demod_type = standard_header.demod_type
            number_of_samples = standard_header.number_of_samples
            number_of_channels = standard_header.number_of_channels
            sample_size = standard_header.sample_size
            return AmmosExtendedAudioDataHeader(sample_rate, status, frequency, demod_bandwidth, demod_type,
                                                number_of_samples, number_of_channels, sample_size, timestamp)