You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #
- # This file is part of usb_protocol.
- #
- """ Convenience emitters for USB Audio Class 2 descriptors. """
-
- from contextlib import contextmanager
-
- from .. import emitter_for_format
- from ...types.descriptors.uac2 import *
- from ...emitters.descriptor import ComplexDescriptorEmitter
-
- # Create our emitters.
- InterfaceAssociationDescriptorEmitter = emitter_for_format(InterfaceAssociationDescriptor)
- StandardAudioControlInterfaceDescriptorEmitter = emitter_for_format(StandardAudioControlInterfaceDescriptor)
-
- 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)
|