class SupportedAudioStreamConfiguration(TLVStruct): """ UUID 00000115-0000-1000-8000-0026BB765291 Type public.hap.characteristic.supported-audio-stream-configuration """ config: Sequence[AudioCodecConfiguration] = tlv_entry(1) comfort_noise: u8 = tlv_entry(2)
class SelectedRTPStreamConfiguration(TLVStruct): """ UUID 00000117-0000-1000-8000-0026BB765291 Type public.hap.characteristic.selected-rtp-stream-configuration """ control: SessionControl = tlv_entry(1) video_params: SelectedVideoParameters = tlv_entry(2) audio_params: SelectedAudioParameters = tlv_entry(3)
class DummyStruct(TLVStruct): # fields stored locally for each house boat number_of_residents: u8 = field(init=False, default=1) # fields pulled from satellite network sharks_nearby: u8 = tlv_entry(1) days_ago_sharks_ate: u8 = tlv_entry(3) sharks_have_coherent_monochromatic_light_sources: u8 = tlv_entry(5) def risk_of_shark_attack(self): return 100 # the old algorithm was incorrect
class SupportedRTPConfiguration(TLVStruct): """ UUID 00000116-0000-1000-8000-0026BB765291 Type public.hap.characteristic.supported-rtp-configuration """ srtp_crypto_suite: SRTPCryptoSuiteValues = tlv_entry(2)
class SupportedVideoStreamConfiguration(TLVStruct): """ UUID 00000114-0000-1000-8000-0026BB765291 Type public.hap.characteristic.supported-video-stream-configuration """ config: Sequence[VideoConfigConfiguration] = tlv_entry(1)
class DummyStruct(TLVStruct): state: u8 = tlv_entry(7) message: str = tlv_entry(1)
class SelectedAudioParameters(TLVStruct): codec_type: AudioCodecValues = tlv_entry(1) codec_parameters: AudioCodecParameters = tlv_entry(2) rtp_params: AudioRTPParameters = tlv_entry(3) comfort_noise: u8 = tlv_entry(4)
class AudioRTPParameters(TLVStruct): payload_type: u8 = tlv_entry(1) ssrc: u32 = tlv_entry(2) max_bitrate: u16 = tlv_entry(3) min_rtcp_interval: float = tlv_entry(4) comfort_noise_payload_type: u8 = tlv_entry(6)
class SelectedVideoParameters(TLVStruct): codec_type: VideoCodecTypeValues = tlv_entry(1) codec_parameters: VideoCodecParameters = tlv_entry(2) video_attrs: VideoAttrs = tlv_entry(3) rtp_params: VideoRTPParameters = tlv_entry(4)
class VideoConfigConfiguration(TLVStruct): codec_type: VideoCodecTypeValues = tlv_entry(1) codec_params: Sequence[VideoCodecParameters] = tlv_entry(2) video_attrs: Sequence[VideoAttrs] = tlv_entry(3)
class DummyStruct(TLVStruct): foo: FooValues = tlv_entry(1)
class DummyStruct(TLVStruct): state: u8 = tlv_entry(6) certificate: str = tlv_entry(9) identifier: str = tlv_entry(1)
class VideoAttrs(TLVStruct): width: u16 = tlv_entry(1) height: u16 = tlv_entry(2) fps: u8 = tlv_entry(3)
class SessionControl(TLVStruct): session: str = tlv_entry(1) command: SessionControlCommandValues = tlv_entry(2)
class StreamingStatus(TLVStruct): status: StreamingStatusValues = tlv_entry(1)
class DummyStruct(TLVStruct): dummy_type: u128 = tlv_entry(16)
class DummyStruct(TLVStruct): value: bytes = tlv_entry(160)
class VideoCodecParameters(TLVStruct): profile_id: ProfileIDValues = tlv_entry(1) level: ProfileSupportLevelValues = tlv_entry(2) packetization_mode: PacketizationModeValues = tlv_entry(3) cvo_enabled: CVOEnabledValues = tlv_entry(4) cvo_id: u8 = tlv_entry(5)
class AudioCodecParameters(TLVStruct): audio_channels: u8 = tlv_entry(1) bit_rate: BitRateValues = tlv_entry(2) sample_rate: SampleRateValues = tlv_entry(3) rtp_time: u8 = tlv_entry(4)
class VideoRTPParameters(TLVStruct): payload_type: u8 = tlv_entry(1) ssrc: u32 = tlv_entry(2) max_bitrate: u16 = tlv_entry(3) min_rtcp_interval: float = tlv_entry(4) max_mtu: u16 = tlv_entry(5)
class DummyStruct(TLVStruct): prefix: u64 = tlv_entry(48)
class AudioCodecConfiguration(TLVStruct): codec: AudioCodecValues = tlv_entry(1) parameters: Sequence[AudioCodecParameters] = tlv_entry(2)