Source code for usb_protocol.emitters.descriptors.uac2

# -*- coding: utf-8 -*-
#
# This file is part of usb_protocol.
#
""" Convenience emitters for USB Audio Class 2 descriptors. """


from ...types.descriptors.uac2 import *
from .. import emitter_for_format
from ..descriptor import ComplexDescriptorEmitter

# Create our emitters.
InterfaceAssociationDescriptorEmitter          = emitter_for_format(InterfaceAssociationDescriptor)
StandardAudioControlInterfaceDescriptorEmitter = emitter_for_format(StandardAudioControlInterfaceDescriptor)

[docs] class ClassSpecificAudioControlInterfaceDescriptorEmitter(ComplexDescriptorEmitter): DESCRIPTOR_FORMAT = ClassSpecificAudioControlInterfaceDescriptor def _pre_emit(self): # Figure out the total length of our descriptor, including subordinates. subordinate_length = sum(len(sub) for sub in self._subordinates) self.wTotalLength = subordinate_length + self.DESCRIPTOR_FORMAT.sizeof()
ClockSourceDescriptorEmitter = emitter_for_format(ClockSourceDescriptor) InputTerminalDescriptorEmitter = emitter_for_format(InputTerminalDescriptor) OutputTerminalDescriptorEmitter = emitter_for_format(OutputTerminalDescriptor) FeatureUnitDescriptorEmitter = emitter_for_format(FeatureUnitDescriptor) AudioStreamingInterfaceDescriptorEmitter = emitter_for_format(AudioStreamingInterfaceDescriptor) ClassSpecificAudioStreamingInterfaceDescriptorEmitter = emitter_for_format(ClassSpecificAudioStreamingInterfaceDescriptor) TypeIFormatTypeDescriptorEmitter = emitter_for_format(TypeIFormatTypeDescriptor) ExtendedTypeIFormatTypeDescriptorEmitter = emitter_for_format(ExtendedTypeIFormatTypeDescriptor) TypeIIFormatTypeDescriptorEmitter = emitter_for_format(TypeIIFormatTypeDescriptor) ExtendedTypeIIFormatTypeDescriptorEmitter = emitter_for_format(ExtendedTypeIIFormatTypeDescriptor) TypeIIIFormatTypeDescriptorEmitter = emitter_for_format(TypeIIIFormatTypeDescriptor) ExtendedTypeIIIFormatTypeDescriptorEmitter = emitter_for_format(ExtendedTypeIIIFormatTypeDescriptor) ClassSpecificAudioStreamingIsochronousAudioDataEndpointDescriptorEmitter = emitter_for_format(ClassSpecificAudioStreamingIsochronousAudioDataEndpointDescriptor) AudioControlInterruptEndpointDescriptorEmitter = emitter_for_format(AudioControlInterruptEndpointDescriptor) AudioStreamingIsochronousEndpointDescriptorEmitter = emitter_for_format(AudioStreamingIsochronousEndpointDescriptor) AudioStreamingIsochronousFeedbackEndpointDescriptorEmitter = emitter_for_format(AudioStreamingIsochronousFeedbackEndpointDescriptor)