dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx_usb_audio.h File Reference
#include "dx_circular.h"
#include "dx_usb.h"
Include dependency graph for dx_usb_audio.h:
This graph shows which files directly or indirectly include this file:

Classes

union  dx::usb::audio::descriptor
 USB audio class descriptors. More...
union  dx::usb::audio::descriptor::endpoint
union  dx::usb::audio::descriptor::endpoint::midi
struct  dx::usb::audio::descriptor::endpoint::midi::general< jacks >
union  dx::usb::audio::descriptor::endpoint::streaming
struct  dx::usb::audio::descriptor::endpoint::streaming::general
struct  dx::usb::audio::descriptor::endpoint::subtype
struct  dx::usb::audio::descriptor::head
union  dx::usb::audio::descriptor::interface
 USB audio class interface descriptors. More...
union  dx::usb::audio::descriptor::interface::control
 USB audio class control interface descriptors. More...
struct  dx::usb::audio::descriptor::interface::control::clock_multiplier
struct  dx::usb::audio::descriptor::interface::control::clock_selector< pins >
struct  dx::usb::audio::descriptor::interface::control::clock_source
struct  dx::usb::audio::descriptor::interface::control::effect_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::extension_unit< pins >
struct  dx::usb::audio::descriptor::interface::control::feature_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::head
struct  dx::usb::audio::descriptor::interface::control::header
union  dx::usb::audio::descriptor::interface::control::input_terminal
struct  dx::usb::audio::descriptor::interface::control::input_terminal::head
struct  dx::usb::audio::descriptor::interface::control::input_terminal::v1
struct  dx::usb::audio::descriptor::interface::control::input_terminal::v2
union  dx::usb::audio::descriptor::interface::control::mixer_unit< pins >
struct  dx::usb::audio::descriptor::interface::control::mixer_unit< pins >::head
struct  dx::usb::audio::descriptor::interface::control::mixer_unit< pins >::v1
struct  dx::usb::audio::descriptor::interface::control::mixer_unit< pins >::v2
union  dx::usb::audio::descriptor::interface::control::output_terminal
struct  dx::usb::audio::descriptor::interface::control::output_terminal::head
struct  dx::usb::audio::descriptor::interface::control::output_terminal::v1
struct  dx::usb::audio::descriptor::interface::control::output_terminal::v2
struct  dx::usb::audio::descriptor::interface::control::processing_unit< pins >
struct  dx::usb::audio::descriptor::interface::control::samplerate_converter
struct  dx::usb::audio::descriptor::interface::control::selector_unit< pins >
struct  dx::usb::audio::descriptor::interface::control::subtype
union  dx::usb::audio::descriptor::interface::control::v1
struct  dx::usb::audio::descriptor::interface::control::v1::clock_selector< channels >
struct  dx::usb::audio::descriptor::interface::control::v1::clock_selector1
struct  dx::usb::audio::descriptor::interface::control::v1::effect_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::v1::effect_unit1
struct  dx::usb::audio::descriptor::interface::control::v1::extension_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::v1::extension_unit1
struct  dx::usb::audio::descriptor::interface::control::v1::feature_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::v1::feature_unit1
struct  dx::usb::audio::descriptor::interface::control::v1::mixer_unit< pins >
struct  dx::usb::audio::descriptor::interface::control::v1::mixer_unit1
struct  dx::usb::audio::descriptor::interface::control::v1::processing_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::v1::processing_unit1
struct  dx::usb::audio::descriptor::interface::control::v1::selector_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::v1::selector_unit1
union  dx::usb::audio::descriptor::interface::control::v2
struct  dx::usb::audio::descriptor::interface::control::v2::clock_selector< channels >
struct  dx::usb::audio::descriptor::interface::control::v2::clock_selector1
struct  dx::usb::audio::descriptor::interface::control::v2::effect_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::v2::effect_unit1
struct  dx::usb::audio::descriptor::interface::control::v2::extension_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::v2::extension_unit1
struct  dx::usb::audio::descriptor::interface::control::v2::feature_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::v2::feature_unit1
struct  dx::usb::audio::descriptor::interface::control::v2::mixer_unit< pins >
struct  dx::usb::audio::descriptor::interface::control::v2::mixer_unit1
struct  dx::usb::audio::descriptor::interface::control::v2::processing_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::v2::processing_unit1
struct  dx::usb::audio::descriptor::interface::control::v2::selector_unit< channels >
struct  dx::usb::audio::descriptor::interface::control::v2::selector_unit1
struct  dx::usb::audio::descriptor::interface::head
union  dx::usb::audio::descriptor::interface::midi
struct  dx::usb::audio::descriptor::interface::midi::element< pins, caps >
struct  dx::usb::audio::descriptor::interface::midi::head
struct  dx::usb::audio::descriptor::interface::midi::header
union  dx::usb::audio::descriptor::interface::midi::jack
struct  dx::usb::audio::descriptor::interface::midi::jack::head
struct  dx::usb::audio::descriptor::interface::midi::jack::in
struct  dx::usb::audio::descriptor::interface::midi::jack::out< pins >
struct  dx::usb::audio::descriptor::interface::midi::subtype
union  dx::usb::audio::descriptor::interface::streaming
 USB audio class streaming interface descriptors. More...
struct  dx::usb::audio::descriptor::interface::streaming::encoder
union  dx::usb::audio::descriptor::interface::streaming::format
union  dx::usb::audio::descriptor::interface::streaming::format::ex
struct  dx::usb::audio::descriptor::interface::streaming::format::ex::type1
struct  dx::usb::audio::descriptor::interface::streaming::format::ex::type2
struct  dx::usb::audio::descriptor::interface::streaming::format::ex::type3
struct  dx::usb::audio::descriptor::interface::streaming::format::head
union  dx::usb::audio::descriptor::interface::streaming::format::type1
struct  dx::usb::audio::descriptor::interface::streaming::format::type1::v1
struct  dx::usb::audio::descriptor::interface::streaming::format::type1::v2
union  dx::usb::audio::descriptor::interface::streaming::format::type2
struct  dx::usb::audio::descriptor::interface::streaming::format::type2::v1
struct  dx::usb::audio::descriptor::interface::streaming::format::type2::v2
struct  dx::usb::audio::descriptor::interface::streaming::format::type4
union  dx::usb::audio::descriptor::interface::streaming::format::v1
union  dx::usb::audio::descriptor::interface::streaming::format::v2
union  dx::usb::audio::descriptor::interface::streaming::format::v2::ex
union  dx::usb::audio::descriptor::interface::streaming::general
struct  dx::usb::audio::descriptor::interface::streaming::general::v1
struct  dx::usb::audio::descriptor::interface::streaming::general::v2
struct  dx::usb::audio::descriptor::interface::streaming::head
struct  dx::usb::audio::descriptor::interface::streaming::subtype
union  dx::usb::audio::descriptor::interface::streaming::v1
union  dx::usb::audio::descriptor::interface::streaming::v2
struct  dx::usb::audio::descriptor::type
struct  dx::usb::audio::isoc
struct  dx::usb::audio::isoc::cycle
struct  dx::usb::audio::isoc::cycle::tick
struct  dx::usb::audio::range< ranges_t >
struct  dx::usb::audio::subclass
struct  dx::usb::midi< buffer_t >
 USB MIDI packetizer. More...
union  dx::usb::midi< buffer_t >::msg
 USB MIDI endpoint element types: defining the element size for a single USB MIDI pipe request. More...

Namespaces

namespace  dx
 dynax driver framework interface namespace
namespace  dx::usb
 USB user mode interface namespace.
namespace  dx::usb::audio
 generic USB audio 1.0
namespace  dx::usb::audio::to
namespace  dx::usb::terminal

Enumerations

enum  dx::usb::audio::endpoint_control : uint16_t { dx::usb::audio::sampling_frequency = 0x0100 }
enum  dx::usb::audio::feature_control : uint16_t { dx::usb::audio::mute = 0x0100 , dx::usb::audio::volume = 0x0200 }
enum  dx::usb::audio::request : uint8_t {
  dx::usb::audio::set_cur = 0x01 , dx::usb::audio::set_min , dx::usb::audio::set_max , dx::usb::audio::set_res ,
  dx::usb::audio::set_mem , dx::usb::audio::get_cur = 0x81 , dx::usb::audio::get_min , dx::usb::audio::get_max ,
  dx::usb::audio::get_res , dx::usb::audio::get_mem , dx::usb::audio::get_stat = 0xff
}
enum  dx::usb::audio::selector_control : uint16_t { dx::usb::audio::selector_v1 = 0x0000 , dx::usb::audio::selector_v2 = 0x0100 }
enum  dx::usb::audio::terminal : uint16_t {
  dx::usb::audio::usb_undefined = 0x0100 , dx::usb::audio::usb_streaming = 0x0101 , dx::usb::audio::usb_vendor = 0x01ff , dx::usb::audio::input_undefined = 0x0200 ,
  dx::usb::audio::microphone = 0x0201 , dx::usb::audio::desktop_microphone = 0x0202 , dx::usb::audio::personal_microphone = 0x0203 , dx::usb::audio::omni_microphone = 0x0204 ,
  dx::usb::audio::microphone_array = 0x0205 , dx::usb::audio::processing_microphone = 0x0206 , dx::usb::audio::output_undefined = 0x0300 , dx::usb::audio::speaker = 0x0301 ,
  dx::usb::audio::headphones = 0x0302 , dx::usb::audio::head_mounted = 0x0303 , dx::usb::audio::desktop_speaker = 0x0304 , dx::usb::audio::room_speaker = 0x0305 ,
  dx::usb::audio::communication_speaker = 0x0306 , dx::usb::audio::lfe_speaker = 0x0307 , dx::usb::audio::bidirectional_undefined =0x0400 , dx::usb::audio::handset = 0x0401 ,
  dx::usb::audio::headset = 0x0402 , dx::usb::audio::speakerphone = 0x0403 , dx::usb::audio::echo_suppressing = 0x0404 , dx::usb::audio::echo_canceling = 0x0405 ,
  dx::usb::audio::telephony_undefined = 0x0500 , dx::usb::audio::phone_line = 0x0501 , dx::usb::audio::telephone = 0x0502 , dx::usb::audio::down_line_phone = 0x0503 ,
  dx::usb::audio::external_undefined = 0x0600 , dx::usb::audio::analog_connector = 0x0601 , dx::usb::audio::digital_interface = 0x0602 , dx::usb::audio::line_connector = 0x0603 ,
  dx::usb::audio::legacy_connector = 0x0604 , dx::usb::audio::spdif = 0x0605 , dx::usb::audio::da_stream = 0x0606 , dx::usb::audio::dv_stream = 0x0607 ,
  dx::usb::audio::embedded_undefined = 0x0700 , dx::usb::audio::calibration_noise = 0x0701 , dx::usb::audio::equalization_noise = 0x0702 , dx::usb::audio::cd_player = 0x0703 ,
  dx::usb::audio::dat = 0x0704 , dx::usb::audio::dcc = 0x0705 , dx::usb::audio::minidisk = 0x0706 , dx::usb::audio::analog_tape = 0x0707 ,
  dx::usb::audio::phonograph = 0x0708 , dx::usb::audio::vcr = 0x0709 , dx::usb::audio::video_disc = 0x070a , dx::usb::audio::dvd = 0x070b ,
  dx::usb::audio::tv_tuner = 0x070c , dx::usb::audio::satellite = 0x070d , dx::usb::audio::cable_tuner = 0x070e , dx::usb::audio::dss = 0x070f ,
  dx::usb::audio::radio_receiver = 0x0710 , dx::usb::audio::radio_transmitter = 0x0711 , dx::usb::audio::multitrack = 0x0712 , dx::usb::audio::synthesizer = 0x0713
}
 the terminal types of the audio class ("Universal Serial Bus Device Class Definition for Terminal Types", A.2): what wTerminalType holds, and what a CoreAudio HAL answers as a stream's terminal type for a USB device and for the machine's own More...
enum class  dx::usb::terminal::types {
  dx::usb::terminal::usb_undefined = 0x0100 , dx::usb::terminal::streaming , dx::usb::terminal::vendor_specific = 0x01ff , dx::usb::terminal::input_undefined = 0x0200 ,
  dx::usb::terminal::microphone , dx::usb::terminal::desktop_microphone , dx::usb::terminal::personal_microphone , dx::usb::terminal::omni_directional_microphone ,
  dx::usb::terminal::microphone_array , dx::usb::terminal::processing_microphone_array , dx::usb::terminal::output_undefined = 0x300 , dx::usb::terminal::speaker ,
  dx::usb::terminal::headphones , dx::usb::terminal::head_mounted_display_audio , dx::usb::terminal::desktop_speaker , dx::usb::terminal::room_speaker ,
  dx::usb::terminal::communication_speaker , dx::usb::terminal::low_frequency_effects_speaker
}

Functions

template<typename desc_t>
bool dx::usb::audio::configure (desc_t &desc, const void *configuration, size_t length) noexcept
 a class compliant device's desc from its configuration descriptor: the clocks, streams and pins of the audio class descriptors, walked in place - bLength and wTotalLength are device supplied and untrusted, every step is bounded by them. ADC1 only, an ADC2 device leaves the desc as it is.
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::endpoint)&endpoint)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::control::clock_multiplier)&clock_multiplier)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::control::clock_selector1)&clock_selector1)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::control::clock_source)&clock_source)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::control::effect_unit1)&effect_unit1)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::control::extension_unit1)&extension_unit1)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::control::feature_unit1)&feature_unit1)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::control::processing_unit1)&processing_unit1)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::control::samplerate_converter)&samplerate_converter)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::control::selector_unit1)&selector_unit1)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::control::v1)&control)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::control::v2)&control)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::midi)&midi)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::midi::header)&header)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::midi::jack)&jack)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::encoder)&encoder)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::format::ex::type1)&format)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::format::type1::v1)&format)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::format::type1::v2)&format)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::format::type2::v1)&format)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::format::type2::v2)&format)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::format::v1)&format)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::format::v2)&format)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::general::v1)&general)
 usb::audio::descriptor::interface::streaming logging
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::general::v2)&general)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::v1)&streaming)
std::ostream & dx::usb::operator<< (std::ostream &os, const decltype(audio::descriptor::interface::streaming::v2)&streaming)
std::ostream & dx::usb::operator<< (std::ostream &os, const struct audio::descriptor::interface::control::header &header)
 usb::audio::descriptor::interface::control logging
std::ostream & dx::usb::operator<< (std::ostream &os, const struct audio::descriptor::interface::control::input_terminal::v1 &input_terminal)
std::ostream & dx::usb::operator<< (std::ostream &os, const struct audio::descriptor::interface::control::input_terminal::v2 &input_terminal)
std::ostream & dx::usb::operator<< (std::ostream &os, const struct audio::descriptor::interface::control::mixer_unit< 1 >::v1 &mixer_unit1)
std::ostream & dx::usb::operator<< (std::ostream &os, const struct audio::descriptor::interface::control::mixer_unit< 1 >::v2 &mixer_unit1)
std::ostream & dx::usb::operator<< (std::ostream &os, const struct audio::descriptor::interface::control::output_terminal::v1 &output_terminal)
std::ostream & dx::usb::operator<< (std::ostream &os, const struct audio::descriptor::interface::control::output_terminal::v2 &output_terminal)
dx::stream::plug::plug dx::usb::audio::to::plug (uint32_t terminal) noexcept

(c) copyright 2009 dynamic acoustics e.U. generated on

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.