| C__map | |
| Cdxd::map< dx::kernel, vm_t > | WDK: kernel space memory mapping |
| Cdxd::map< dx::user, vm_t > | WDK: user space memory mapping |
| C__number | |
| Ccf::type< double > | |
| Ccf::type< float > | |
| Ccf::type< type_t, typename std::enable_if_t<(std::is_enum_v< type_t >||std::is_integral_v< type_t >) &&sizeof(type_t)==1 > > | |
| Ccf::type< type_t, typename std::enable_if_t<(std::is_enum_v< type_t >||std::is_integral_v< type_t >) &&sizeof(type_t)==2 > > | |
| Ccf::type< type_t, typename std::enable_if_t<(std::is_enum_v< type_t >||std::is_integral_v< type_t >) &&sizeof(type_t)==4 > > | |
| Ccf::type< type_t, typename std::enable_if_t<(std::is_enum_v< type_t >||std::is_integral_v< type_t >) &&sizeof(type_t)==8 > > | |
| C_desc_t | |
| Cdx::stream::device<> | |
| Cdx::stream::device< super_device_t, _desc_t, _stream_t, _group_t > | Streaming device: its desc, the settings the desc defaults, the streams of that desc grouped by dx::stream::group and the clock those groups run on. Every bus device derives from this one and supplies what its transport does differently - the settings' servers (a rate written to the hardware), the group's tick, the streams' rings. The settings themselves are promoted preferences here, so a wish survives the device and is asked of the transport once the device is there |
| C_device_t | |
| Cdx::asio::device< _device_t, _engine_t > | ASIO driver's device: the bus device plus the streaming engine the host session runs on - attached in launch(), released in conclude(), so the engine's lifetime is the device's own and a host call holding the device holds the engine |
| C_preference | |
| Cdx::key_value_tree< _preference > | |
| CASIOTime | |
| Cdx::asio::driver< device_t, driver_t > | |
| CAudioObjectPropertyAddress | |
| Cdx::coreaudio::property | Coreaudio::property |
| Cdx::coreaudio::property::listen | Coreaudio::property::listen |
| CAudioServerPlugInDriverInterface | |
| Cdx::coreaudio::server::plugin< pin_t, device_t, driver_t > | CoreAudio server plugin |
| Cbase_t | |
| Cdxd::streaming::device< usb::device< base_t >, desc_t, clock_server< base_t, desc_t > > | |
| Cdxd::usb::stream::device< base_t, desc_t > | USB streaming device: the streaming device over the platform's USB device, its streams the endpoints' rings, its clock the bus frame tick |
| Cdxd::streaming::device< base_t, desc_t, clock_server_t > | Generic streaming device: the control interface every bus's clients share |
| Cbus_t | |
| Cdx::stream::format_value< bus_t > | Stream's negotiated sample format, addressed by the bus's own stream target |
| Cdx::stream::open< bus_t > | Generic stream open request |
| Ccf::__string< cf_object_t >::less | Ordering a ::CFStringRef key needs in an std::map - comparing the strings, not the pointers |
| Ccf::_preference::property | |
| Ccf::array< cf_array_t, cf_basetype_t > | |
| Ccf::array<::CFArrayRef, ::CFMutableArrayRef > | |
| Ccf::array<::CFMutableArrayRef > | Array being built: add() appends, and the result converts to what an API asks for |
| Ccf::dictionary< cf_dictionary_t, cf_basetype_t > | Key value pair store |
| Ccf::dictionary<::CFDictionaryRef, ::CFMutableDictionaryRef > | |
| Ccf::dictionary<::CFMutableDictionaryRef > | Dictionary being built: set() chains one entry after another, which is what the desc's CF serialization expands into |
| Ccf::interface< interface_t > | COM style IOKit plugin interface: QueryInterface on the plugin (or on an io_object_t, which is opened as a plugin first) and the release at the end of the object's life - every IOUSBLib and IOCFPlugIn interface is reached through one |
| Ccf::interface<::IOCFPlugInInterface > | |
| Ccf::interface<::IOUSBDeviceInterface650 > | |
| Cdx::usb::platform::device< preference_t > | |
| Cdx::usb::platform::device< dx::preference > | |
| Cdx::usb::device< dx::preference > | |
| Cdx::stream::device< usb::device< dx::preference >, desc_t, pipe< device< desc_t, dx::preference, pipe, group > >, group< device< desc_t, dx::preference, pipe, group > > > | |
| Cdx::usb::stream::_device< desc_t, dx::preference, pipe< device< desc_t, dx::preference, pipe, group > >, group< device< desc_t, dx::preference, pipe, group > > > | |
| Cdx::usb::stream::device< desc_t, preference_t, stream_t, group_t > | Bus's device as a product composes it: the _device above with this bus's pipes and its own ticking group |
| Cdx::usb::device< preference_t > | USB device in user mode: its device, configuration and association descriptors, the platform's handle and this tree's interfaces. It is the base every bus device derives its streams from - the class descriptors it enumerates are what dx::usb::audio::configure builds a desc from |
| Cdx::stream::device< usb::device< preference_t >, desc_t, stream_t, group_t > | |
| Cdx::usb::stream::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > > | |
| Cdx::usb::stream::_device< desc_t, preference_t, stream_t, group_t > | USB device that streams: the stream device's settings wired to the class requests of the device (the rate to the endpoints stating the sampling frequency control, the clock source and the channel source to their units), its streams the pipes below |
| Cdx::usb::platform::device< preference_t > | Platform half of a USB device: the IOKit registry entry, the IOUSBLib device interface and the open count over it - what dx::usb::device puts its descriptors and interfaces on |
| Ccf::interface<::IOUSBInterfaceInterface650 > | |
| Cdx::usb::platform::interface | Platform half of an interface: the IOUSBLib interface plugin, its exclusive open and the run loop its asynchronous completions arrive on |
| Cdx::usb::interface | Interface of the device: the platform's handle to it and the descriptors of its current alternate setting, which update() re-reads whenever the setting is selected |
| Ccf::reference< cf_object_t > | |
| Csec::__code<::SecCodeRef > | |
| Csec::code<::SecCodeRef > | |
| Csec::__code<::SecStaticCodeRef > | |
| Csec::code<::SecStaticCodeRef > | |
| Ccf::__string< cf_object_t > | RAII CFString class |
| Ccf::array<::CFArrayRef, cf_object_t > | ::CFArray read: its elements as a plain vector (container, unretained) or as cf::type values (dx_container), and a range-for over them |
| Ccf::dictionary<::CFDictionaryRef, cf_object_t > | ::CFDictionary read: operator [] names an entry, which converts to what the caller asks for, and a range-for walks key and value pairs. An entry hands out a retained value (cf::reference's ownership rule) |
| Ccf::reference< ::CFMutableStringRef > | |
| Ccf::__string<::CFMutableStringRef > | |
| Ccf::type< char * > | |
| Ccf::type< std::string > | |
| Ccf::reference< ::CFStringRef > | |
| Ccf::__string<::CFStringRef > | |
| Ccf::type< const char * > | |
| Cdx::coremidi::stream< device_t, circular_t > | One source or destination: the in side writes what the endpoint's callback delivers into the ring at the moment each packet carries and never stalls - a full ring drops and counts - while the out side's own thread reads whole packets and hands them to CoreMIDI at their own timestamps, which schedules what is still due |
| Ccf::reference< ::CFTypeRef > | |
| Csec::item< item_t > | |
| Ccf::reference< item_t > | |
| Csec::__code< item_t > | Code with a signature - a running process or a file on disk: its signing information as a dictionary, which is what a signature requirement is checked against |
| Ccf::reference<::CFBundleRef > | |
| Ccf::bundle | Bundle by identifier, or the running one: its URL, its resources and its Info.plist as a dictionary |
| Ccf::reference<::CFDataRef > | |
| Ccf::data | Byte blob: made from a string, a buffer or a file, compared and copied back out - what a certificate's DER, a descriptor or a property's raw bytes travel in |
| Ccf::reference<::CFErrorRef > | |
| Ccf::error | ::CFError, in both directions: made from an OSStatus to name it, or taken from an API that hands one out (operator ::CFErrorRef*() is the out parameter). cf::describe is what dx::exception prints for a macOS result |
| Ccf::reference<::CFPropertyListRef > | |
| Cdx::coreaudio::server::_preference | Persistant CoreAudio storarage base class - do not use directly! use coreaudio::server::preference |
| Ccf::reference<::CFReadStreamRef > | |
| Ccf::stream | File open for reading, closed with the object; its offset is what a parse error is reported at |
| Ccf::reference<::CFRunLoopSourceRef > | |
| Ccf::runloop::source | |
| Ccf::runloop::pause | Scope that holds the run loop's thread still: it is made to perform nothing until the scope ends, so another thread may touch what the loop's callbacks reach |
| Ccf::reference<::CFTypeRef > | |
| Ccf::type<::CFTypeRef > | Opaque type serves as type::factory |
| Ccf::reference<::CFURLRef > | |
| Ccf::url | File system path or a bundle resource as a ::CFURL, converting back to a path, a string and a read stream |
| Ccf::reference<::CFUUIDRef > | |
| Ccf::uuid | UUID, generated or read from its string or bytes - dx::guid on macOS |
| Ccf::reference<::SCPreferencesRef > | |
| Csc::_preference | Persistant system configuration storarage base class - do not use directly! use sc::preference |
| Ccf::reference<::SecCertificateRef > | |
| Csec::certificate | Persistant system configuration storarage base class - do not use directly! use sc::preference |
| Cdx::platform::license | Dx::license's platform part in the WDK kernel: the machine store's candidates, the machine's identity |
| Cdx::license | First certificate of the platform's store naming the product that the root signed, whose constraints this machine and device satisfy and that, unless perpetual, has not expired; kernel and user mode alike over the platform part (dx_platform_license.h: the store's candidates and their DER, the time, the machine's serial number and ethernet addresses, what to keep and the missing/forged hooks) |
| Ccf::reference<::SecRequirementRef > | |
| Csec::requirement | Code signing requirement compiled from its text form |
| Ccf::reference<::SecTrustRef > | |
| Csec::trust | Evaluation of a certificate chain; sec::trust::anchors restricts it to a given root - a license is checked against the embedded one, never against the keychain's trust settings |
| Ccf::tree< derived_t > | Dx::key_value_tree<derived_t> contract (dxd/interface/dx_key_value_tree.h), implemented once for every CF-backed preference store (cf::_preference, sc::_preference, dx::coreaudio::server::_preference) - inherit from this (CRTP: class _preference: public cf::tree<_preference>) instead of reimplementing it |
| Ccf::tree< _preference > | |
| Ccf::_preference | Persistant storarage base class - do not use directly! use cf::preference |
| Cdx::coreaudio::server::_preference | Persistant CoreAudio storarage base class - do not use directly! use coreaudio::server::preference |
| Csc::_preference | Persistant system configuration storarage base class - do not use directly! use sc::preference |
| Ccf::type< type_t, enable_t > | |
| Ccf::type< bool > | Boolean is no ::CFNumber but one of the two ::kCFBoolean singletons, so this one carries no reference of its own |
| Ccontrol< object< device< desc, preference, stream > > > | |
| Cdx::stream::stream< device< desc, preference, stream >, ump::circular > | |
| Cdx::midi::services::stream< device< desc, preference, stream > > | |
| Ccontrol< object< device_t > > | |
| Cdx::stream::stream< device_t, circular_t > | |
| Cdx::stream::stream< device_t, dx::circular > | |
| Cdx::coreaudio::stream::stream< device_t, circular_t > | Stream of a HAL device: the ring is the client's own, the latency the HAL's property of that direction |
| Cdx::stream::stream< device_t, dx::midi::ump::circular > | |
| Cdx::coremidi::stream< device_t, circular_t > | One source or destination: the in side writes what the endpoint's callback delivers into the ring at the moment each packet carries and never stalls - a full ring drops and counts - while the out side's own thread reads whole packets and hands them to CoreMIDI at their own timestamps, which schedules what is still due |
| Cdx::stream::stream< device_t, ump::circular > | |
| Cdx::midi::services::stream< device_t, circular_t > | Stream of a Windows MIDI Services endpoint: Universal MIDI Packets through the device's connection, an ump::circular ring on this side |
| Cdx::stream::stream< device_t, circular_t, super_stream_t, _event_t > | One stream of the device's desc while it is in use: the ring its clients share, the format they agreed on, and the session its dx::stream::control counts. The ring is allocated once (alloc()/free(), never across a start/stop cycle) and reset by its host alone at a session start - a participant mapping another's ring replaces the run hook and anchors a cursor instead. Bus streams derive from this one: a pipe, a shared memory ring, the kernel's mapping |
| Ccrypt::certificate | CryptoAPI certificate context, reference counted |
| Cdx::platform::license | Dx::license's platform part in the WDK kernel: the machine store's candidates, the machine's identity |
| Ccrypt::store | System certificate store by name and location, read only |
| CCUnknown | |
| Cdxd::wavert::miniport< dxd::portcls::device::stream > | |
| Cdxd::wavert::stream< struct desc_t::stream > | |
| Cdxd::portcls::device< streaming_device_t >::stream | WaveRT pin stream: exchanges the frames its device's tick hands it with its stream's ring |
| Cdx::asio::driver< device_t, driver_t > | |
| Cdxd::dmus::stream< backend_t > | Dmus::stream: a DirectMusic pin stream over its device's MIDI ring |
| Cdxd::wavert::miniport< stream_t > | Wavert::miniport |
| Cdxd::wavert::stream< stream_desc_t > | Wavert::stream: cyclic WaveRT buffer with client notifications |
| Cdesc_t | |
| Cdx::stream::device< dx::proxy::device< preference_t >, desc_t, stream_t, group_t > | |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > > | |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t > | |
| Cdx::stream::device< dx::device<::AudioObjectID, preference_t >, desc_t, stream_t, group_t > | |
| Cdx::coreaudio::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t, _hosted > >, group_t< device< desc_t, preference_t, stream_t, group_t, _hosted > > > | |
| Cdx::coreaudio::device< desc_t, preference_t, stream_t, group_t, true > | |
| Cdx::coreaudio::_device< desc_t, preference_t, stream_t, group_t > | CoreAudio client device |
| Cdx::coreaudio::device< desc_t, preference_t, stream_t, group_t > | |
| Cdx::stream::device< dx::device<::MIDIDeviceRef, preference_t >, desc_t, stream_t > | |
| Cdx::coremidi::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t > > > | |
| Cdx::coremidi::_device< desc_t, preference_t, stream_t > | CoreMIDI client device |
| Cdx::stream::device< usb::device< preference_t >, desc_t, stream_t, group_t > | |
| Cdx::stream::device< dx::device< std::string, preference_t >, desc_t, stream_t, group_t > | |
| Cdx::service::client::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > > | |
| Cdx::virtuel::stream::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > > | |
| Cdx::service::client::_device< desc_t, preference_t, stream_t, group_t > | Service client streaming device interface class |
| Cdx::virtuel::stream::_device< desc_t, preference_t, stream_t, group_t > | Virtual streaming device interface class |
| Cdx::stream::device< dx::device< dx::guid, preference_t >, desc_t, stream_t, group_t > | |
| Cdx::asio::client::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > > | |
| Cdx::asio::client::_device< desc_t, preference_t, stream_t, group_t > | ASIO client streaming device interface class |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference_t > >, desc_t, stream_t > | |
| Cdx::midi::services::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t > > > | |
| Cdx::midi::services::_device< desc_t, preference_t, stream_t > | Windows MIDI Services client device: one UMP endpoint |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference_t > >, desc_t, stream_t, group_t > | |
| Cdx::wasapi::client::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > > | |
| Cdx::wasapi::client::_device< desc_t, preference_t, stream_t, group_t > | WASAPI client streaming device interface class |
| Cdx::stream::device< usb::device< dx::preference >, desc_t, pipe< device< desc_t, dx::preference, pipe, group > >, group< device< desc_t, dx::preference, pipe, group > > > | |
| Cdevice::desc::stream::desc | |
| Cdx::stream::stream< device< desc, preference, stream >, ump::circular > | |
| Cdevice_t | |
| Cdx::gui::device< device_t > | Device as a branch of the panel's tree: its name and icon on the line, its streams, clock, buffer size and clients below - every widget bound to the desc, which the device writes back when one of them changes |
| Cdx::gui::device< device_t > | Device as a branch of the panel's tree: its name and icon on the line, its streams, clock, buffer size and clients below - every widget bound to the desc, which the device writes back when one of them changes |
| Cdevice_t::desc::stream::desc | |
| Cdx::stream::stream< device_t, circular_t, super_stream_t, event_t > | |
| Cdx::stream::shared::stream< device_t, circular_t, super_stream_t, event_t > | |
| Cdx::stream::stream< device_t, circular_t > | |
| Cdx::stream::stream< device_t, dx::circular > | |
| Cdx::stream::stream< device_t, dx::midi::ump::circular > | |
| Cdx::stream::stream< device_t, ump::circular > | |
| Cdx::stream::stream< device_t, dx::circular, usb::pipe< device_t > > | |
| Cdx::usb::stream::pipe< device_t, circular_t, stream_t > | One isochronous endpoint as a stream: the ring, the cycle of slots the session rotates through and the thread that ticks them. The data path itself is dx::usb::isoc::pipeline, shared with the kernel driver; this class supplies its platform part - a slot's request over its buffer, the completions in submission order, the direction's data event and the timestamp clock. An asynchronous sink keeps its sync endpoint's requests here too (isoc.sync), an implicit feedback source reads its rate off its own delivered lines |
| Cdx::stream::stream< device_t, circular_t, super_stream_t, _event_t > | One stream of the device's desc while it is in use: the ring its clients share, the format they agreed on, and the session its dx::stream::control counts. The ring is allocated once (alloc()/free(), never across a start/stop cycle) and reset by its host alone at a session start - a participant mapping another's ring replaces the run hook and anchors a cursor instead. Bus streams derive from this one: a pipe, a shared memory ring, the kernel's mapping |
| Cdevice_t::desc::stream::pin::desc | |
| Cdx::stream::pin< device_t, _circular_t > | One client's attachment to a stream: the pin desc it was made from, the channels it takes of that stream's ring, and its own share of the stream's start count. Several pins - several clients - share one dx::stream::stream, which the device keeps by weak reference: the first pin of a stream creates it, the last one to go releases it, and neither stops a transport the others still run |
| Cdevice_t::ring | |
| Cdxd::usb::stream::pipe< device_t > | One endpoint's ring and request pipeline |
| Cdriver_t | |
| Cdx::asio::driver< device_t, driver_t > | |
| Cdx::asio::service::driver< driver_t > | Service's ASIO side: it hands every arriving device the registration above |
| Cdx::gui::cpl< driver_t >::frame::panel::driver | Device tree: it is the driver, so a device arriving on the bus adds its own line |
| Cdx::gui::cpl< driver_t >::window::component::driver | Device tree itself: it is the driver, so arrivals and removals reach it directly, and it is the document - the tree's settings are saved and restored as a file |
| Cdx::service::driver< driver_t > | Service driver interface class |
| Cdx::stream::driver< driver_t > | Stream driver interface class |
| Cdx::test::driver< super_device_t, device_t, driver_t > | One bus's command set: the driver of that bus plus the commands the CLI dispatches on it. It keeps the device under test alone - a bus's tree must hold exactly that one device while a test runs |
| Cdx::test::service::driver< driver_t > | Service control commands of the test app: install, start, stop and remove, plus the timing a client's connect and disconnect are exercised with |
| Cdx::__scalar< type_t, resolution > | Integer of a width the language has none for - dx::int24/dx::uint24, packed into its own bytes because a bit field of a packed struct still costs four bytes here |
| Cdx::__scalar< type_t, resolution >::cast | |
| Cdx::abstract::event | Counting event every scope implements: a signal raises the count, a wait takes one (or resets the count where the waiter serves them all at once) |
| Cdx::event< kernel > | Kernel triggerable user space event |
| Cdx::usb::platform::pipe< device_t, usb::interface > | |
| Cdx::usb::platform::pipe< device<>, interface > | |
| Cdx::usb::pipe< device_t > | |
| Cdx::usb::platform::pipe< device_t, interface > | |
| Cdx::usb::pipe< device_t > | |
| Cdx::stream::stream< device_t, dx::circular, usb::pipe< device_t > > | |
| Cdx::service::manager::promoted | Value the control manager notifies about, on a thread of its own: the notification is an alertable wait, so the callback runs on that thread and commits what it read. A service marked for deletion ends the watch |
| Cdx::service::manager::enumerate | Machine's services, re-read whenever one of them changes state |
| Cdx::service::manager::status | Service's current state; a delete pending answer closes the handle |
| Cdx::usb::platform::pipe< device_t, interface_t > | Platform half of a pipe: the transfers over the interface's endpoint and their completions - an isochronous one queues its result for the group's poll, since a completion counts and never schedules |
| Cdx::event< user > | Process local event over a condition variable; dx::event<kernel> is the platform's own, waitable together with an OS handle |
| Cdx::usb::platform::pipe< device_t, usb::interface > | |
| Cdx::usb::platform::pipe< device<>, interface > | |
| Cdx::usb::platform::pipe< device_t, interface > | |
| Cdx::event< kernel > | Kernel triggerable user space event |
| Cdx::pipe< rcv_t >::connection | Whether this pipe stands: an event to wait on and a promoted to follow - dx::pipe::status derives it from what the last operation answered |
| Cdx::usb::platform::pipe< device_t, interface_t > | Platform half of a pipe: the transfers over the interface's endpoint and their completions - an isochronous one queues its result for the group's poll, since a completion counts and never schedules |
| Cdx::shared::event | MacOS user space shared event |
| Cdx::coreaudio::server::device< pin_t > | CoreAudio server streaming device |
| Cdx::service::device< preference_t >::user_client | User client connection The each user_client holds a shared device reference |
| Cdx::aggregate< types > | Forwards a braced argument list into a type with no matching constructor - the conversion builds it from the stored tuple, so an aggregate can be returned or passed where its own members would not deduce |
| Cdx::ansi | SGR/OSC control sequence, written only where it is read: every sink below drops it unless stderr is a terminal |
| Cdx::apartment< object_t, model > | COM apartment of one object - a device or a whole driver: its thread creates the object, runs its steps and releases it |
| Cdx::asio::client::_device< desc_t, preference_t, stream_t, group_t >::asio | SDK driver this device is, opened off a list of its own: its id holds however the registry moves |
| Cdx::asio::client::callbacks | What an ASIO driver calls back into its host: the buffer switch and the driver's own notifications. The comments are the SDK's own description of the contract |
| Cdx::asio::client::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > > | |
| Cdx::asio::client::_device< desc, preference, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::asio::client::device< desc_t, preference_t, stream_t, group_t > | Bus's device as a product composes it: an ASIO driver of the machine, driven as any ASIO host drives one |
| Cdx::asio::client::_device< desc_t, preference_t, stream_t, group_t > | ASIO client streaming device interface class |
| Cdx::asio::client::driver< device_t, devices >::property | |
| Cdx::asio::client::target | ASIO stream's whole hardware identity: its direction - an ASIO driver offers one input and one output side, whatever the device behind it has |
| Cdx::asio::driver< device_t, driver_t >::pause | Session stopped for the scope and started again at its end, where a host's request needs the driver still |
| Cdx::asio::driver< device_t, driver_t >::property | |
| Cdx::circular | Kernel/user space shared circular buffer |
| Cdx::midi::circular | Byte ring of a MIDI 1.0 stream: the reader takes whole messages alone, running status resolved against the status byte it keeps between calls, and a message the ring does not hold completely stays for the next round |
| Cdx::midi::ump::circular | Ring of stamped Universal MIDI Packets: an entry is the stamp in two words, low first, and the words of one packet; a read cuts on whole entries, so a reader never sees a torn one The ring's size is a multiple of the word, so a word never wraps |
| Cdx::usb::midi< buffer_t > | USB MIDI packetizer |
| Cdx::circular::channel< dst_t, src_t > | Copy/mix channel converters |
| Cdx::circular::channel< dst_t, src_t > | Same width, or floating point on both sides: the sample moves as it stands |
| Cdx::circular::interlocked< dst_t > | Compare-exchange returning the prior value regardless of outcome (WIN32 Interlocked* semantics) |
| Cdx::coreaudio::__target | Same layout with named members, so a target can be written with designated initializers |
| Cdx::coreaudio::driver< device_t >::property | This bus's name in the device tree and the preference store |
| Cdx::coreaudio::property::device | |
| Cdx::coreaudio::property::plugin | |
| Cdx::coreaudio::property::pod | |
| Cdx::coreaudio::property::pod::stream | |
| Cdx::coreaudio::property::pod::transport | |
| Cdx::coreaudio::property::qualifier | Qualifier a HAL property takes beside its address, where the selector asks for one |
| Cdx::coreaudio::property::virtuel | Dxd's own selectors on a plugin: what neither the HAL nor a device knows - creating and removing a virtual device, the pod's stream and session notifications, and the plugin's own settings. A four character code each, as every HAL selector is |
| Cdx::coreaudio::property::virtuel::device | |
| Cdx::coreaudio::server::control | Controls a pin publishes beyond the encoders: clock source and its settings, the S/PDIF flag and the stream's source selector - numbered past dx::stream::encoder::index so one target field carries both |
| Cdx::coreaudio::server::control::property | |
| Cdx::coreaudio::server::control::property::clock | |
| Cdx::coreaudio::server::control::property::spdif | |
| Cdx::coreaudio::server::device< pin_t >::client | One process the HAL opened this device for: its bundle identifier, the HAL's client ids and the streams it holds - what a client leaves behind is released with it |
| Cdx::coreaudio::server::host | |
| Cdx::coreaudio::server::device< pin_t > | CoreAudio server streaming device |
| Cdx::coreaudio::server::plugin< pin_t, device_t, driver_t > | CoreAudio server plugin |
| Cdx::coreaudio::server::pin< stream_pin_t >::entry< format_t > | |
| Cdx::coreaudio::target | What an ::AudioObjectID of this plugin addresses: the device, its pin and, inside that pin, the control - the plugin derives the object from the id alone, so no lookup table stands between the HAL and the device tree |
| Cdx::coreaudio::target::dx_packed | |
| Cdx::coreaudio::target::dx_packed::dx_packed | |
| Cdx::coreaudio::target::dx_packed::dx_packed::dx_packed | |
| Cdx::coremidi::driver< device_t >::property | What this driver calls its framework, as every dxd driver states it |
| Cdx::coremidi::property | Coremidi::property |
| Cdx::coremidi::property::listen | Coremidi::property::listen |
| Cdx::coremidi::target | CoreMIDI stream's hardware identity: the entity it belongs to and its direction - a source or a destination of that entity |
| Cdx::crypto::rsa | RSA public key of up to 4096 bits: the signature verification of RSASSA-PKCS1-v1_5 (RFC 8017 8.2.2) |
| Cdx::crypto::rsa::sha256_digestinfo | SHA-256's DigestInfo for verify(): the DER prefix and the digest |
| Cdx::crypto::sha256 | SHA-256 (FIPS 180-4): update() over any run of bytes, digest() ends the message |
| Cdx::daemon::app | Launchd daemon capturing the listed USB devices for its peers: a request names a registry entry, the capture holds while any requesting peer's connection stands |
| Cdx::der::tlv | One element: its tag, content, the element behind it and its own start (begin..next is the whole element, what a signature covers) |
| Cdx::driver< device_id_t, preference_t >::disconnect | Exclusive access to a device a host driver already holds: the scope shuts that driver down and boots it again at its end (dx::coreaudio::driver asks its installed plugin to release the device) |
| Cdx::driver_settings< promoted_t > | Abstract base driver interface class This is the abstract base interface to a driver |
| Cdx::driver< device_id_t, decltype(device_t::preference)> | |
| Cdx::driver_settings< dx::promoted< dx::log >::preference< cf::preference > > | |
| Cdx::driver< decltype(id), cf::preference > | |
| Cdx::driver_settings< dx::promoted< dx::log >::preference< decltype(_device_t::preference) > > | |
| Cdx::driver< decltype(_device_t::id), decltype(_device_t::preference)> | |
| Cdx::map::driver< _device_t, holder_t > | Device mapping driver interface class |
| Cdx::driver_settings< dx::promoted< dx::log >::preference< decltype(device<>::preference) > > | |
| Cdx::driver< decltype(device<>::id), decltype(device<>::preference)> | |
| Cdx::map::driver< device<> > | |
| Cdx::stream::driver< dx::map::driver< device<> > > | |
| Cdx::virtuel::driver< device<> > | |
| Cdx::proxy::driver< device_t > | |
| Cdx::proxy::driver< device_t > | |
| Cdx::driver_settings< dx::promoted< dx::log >::preference< dx::preference > > | |
| Cdx::driver< decltype(id), dx::preference > | |
| Cdx::driver_settings< dx::promoted< dx::log >::preference< preference > > | |
| Cdx::driver< decltype(id), preference > | |
| Cdx::driver_settings< dx::promoted< dx::log >::preference< preference_t > > | |
| Cdx::driver< device_id_t, preference_t > | |
| Cdx::map::driver< device_t > | |
| Cdx::stream::driver< map::driver< device_t > > | |
| Cdx::coreaudio::driver< device_t > | Coreaudio driver interface class |
| Cdx::service::client::driver< device_t > | Service client driver interface class |
| Cdx::stream::driver< dx::map::driver< device_t > > | |
| Cdx::virtuel::driver< device_t > | Virtual driver interface class |
| Cdx::coremidi::driver< device_t > | CoreMIDI client driver interface class |
| Cdx::midi::services::driver< device_t > | Windows MIDI Services client driver interface class |
| Cdx::wasapi::client::driver< device_t > | WASAPI client driver interface class |
| Cdx::map::driver< device_t, dx::apartment< device_t > > | |
| Cdx::asio::client::driver< device_t, devices > | ASIO client driver interface class |
| Cdx::event< scope_t > | |
| Cdx::coreaudio::property::listen | Coreaudio::property::listen |
| Cdx::coremidi::property::listen | Coremidi::property::listen |
| Cdx::event< dx::kernel > | |
| Cdx::registry | Flat, non-hierarchical Windows registry access to one real key |
| Cdx::key_value_tree< registry > | |
| Cdx::stream::device< desc, preference, stream > | |
| Cdx::proxy::device<> | |
| Cdx::proxy::device< dx::preference > | |
| Cdx::stream::device< dx::proxy::device< dx::preference >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream, group > >, group< device< dx::stream::desc<>, dx::preference, stream, group > > > | |
| Cdx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream, group > >, group< device< dx::stream::desc<>, dx::preference, stream, group > > > | |
| Cdx::proxy::stream::device< desc_t, preference_t, stream_t, group_t > | Bus's device as a product composes it: the _device above with this bus's own stream and group, the group's clock being the driver's |
| Cdx::usb::platform::device< dx::preference > | |
| Cdx::usb::platform::device< preference_t > | Platform half of a USB device: the IOKit registry entry, the IOUSBLib device interface and the open count over it - what dx::usb::device puts its descriptors and interfaces on |
| Cdx::proxy::device< preference_t > | OS proxy device driver interface class |
| Cdx::stream::device< dx::proxy::device< preference_t >, desc_t, stream_t, group_t > | |
| Cdx::usb::platform::device< preference_t > | |
| Cdx::event< dx::user > | |
| Cdx::service::app | Service::app - Windows Service Windows services are essentially just a type of container for which startup conditions can be defined. The service interface does not support any additional communication. Communication between client and service are usually be implemented using Windows named pipes |
| Cdx::service::driver< driver_t >::app | Service's own entry point: it launches the driver, so a device arriving on the machine is served whether a client is connected or not |
| Cdx::fence | Memory ordering plain shared state needs on weakly ordered CPUs, in user mode and the kernel alike |
| Cdx::gui::looknfeel | Dx::gui::looknfeel Approximates the juce interface's dark/light colour scheme on the containers wx lets us recolour (frame/panel/splitter backgrounds, the tree, and - via colour inheritance - future field labels) without fighting native control rendering. Buttons, combo boxes, checkboxes and text fields are deliberately left to render as the platform normally would: recolouring native controls fights macOS's own dark-mode appearance, whereas juce draws every control itself and so can commit to one look on every platform |
| Cdx::int24be | Packed 24 bit integer stored big endian: converts from and to the native int on every access, so the ring converters take it like int24 |
| Cdx::iobridge< type_t > | Ioctl bridge for 32/64bit user mode/kernel space big/little endian interface |
| Cdx::iterator< container_t > | Range-for support shared by every dxd type whose elements aren't already kept in an STL container of their own (dx::key_value_tree, cf::data, cf::dictionary, cf::array): a derived_t populates container_t however it needs to - a single existing conversion, or an explicit per-element loop - in its own constructor, then calls seed() once population is complete; operator++()/operator!=() forward to container_t's own iterator from then on. operator*() stays derived_t's own: what it should return (a plain element, const or not) differs per user, from cf::data's read-only bytes to dx::key_value_tree's mutable, further-navigable child node |
| Cdx::iterator< container > | |
| Ccf::array<::CFArrayRef, cf_object_t >::iterator | |
| Ccf::data::iterator | |
| Ccf::dictionary<::CFDictionaryRef, cf_object_t >::iterator | |
| Cdx::iterator< std::vector< key_value_tree > > | |
| Cdx::key_value_tree< tree_t >::iterator | Node's immediate children as nodes of their own, named by tree_t::children() - what a range-for over a node walks |
| Cdx::iterator< std::vector<::SP_DEVINFO_DATA > > | |
| Cdx::proxy::driver< device_t >::setup::devices::iterator | |
| Cdx::launch< object_t > | RAII object launcher |
| Cdx::listener< listen_t > | Balanced listener client into servers listeners map used from the client side to manage its subscription into the server listeners map |
| Cdx::log | Whole log setting in one 32 bit word: a dx::log::level per dx::log::scope per dx::log::module, four bits each. The word is what a driver, a kernel and a host exchange and compare; the named members are the same bits, and to/from name them for a preference, a command line or a property. The serialization macros hand the member list to the tree and CF sinks of dx_serialize.h, so the store holds the log resolved rather than the word |
| Cdx::log::from | |
| Cdx::log::module | Parts of a driver a message is attributed to, each with its own dx::log::scope |
| Cdx::log::module::from | |
| Cdx::log::module::to | |
| Cdx::log::scope | Phases a module is logged apart in - a device's setup may be traced while its operation stays quiet |
| Cdx::log::scope::from | |
| Cdx::log::scope::to | |
| Cdx::log::to | |
| Cdx::map::driver< _device_t, holder_t >::view::iterator< super_iterator >::pointer | |
| Cdx::map::driver< _device_t, holder_t >::view::value_type | |
| Cdx::midi::services::driver< device_t >::property | This bus's name in the device tree and the preference store |
| Cdx::midi::services::target | Stream of an endpoint: the direction, the index in the device |
| Cdx::midi::ump::packet | One packet with its moment: the dx::timestamp() it arrived at or is due at, the words of the packet, words() how many of them the message takes |
| Cdx::object | Framework's object lifecycle: launch() once mounted, conclude() before removal, both reached through the try_ pair alone, which elects the single caller that runs them. Neither is a constructor's or destructor's job: an object is constructed long before its resources exist (a device ahead of its bus arrival) and outlives their release. The destructor's try_conclude() is the backstop for an object never concluded by its owner |
| Cdx::device<::io_service_t, preference_t > | |
| Cdx::usb::platform::device< preference_t > | |
| Cdx::service::device< preference_t > | Registry entry behind a device: its class, the bundle that provides it and every property it publishes |
| Cdx::proxy::device<> | |
| Cdx::proxy::device< preference_t > | OS proxy device driver interface class |
| Cdx::device< std::string, preference_t > | |
| Cdx::proxy::device<> | |
| Cdx::stream::device< dx::device< std::string, preference_t >, desc_t, stream_t, group_t > | |
| Cdx::proxy::device< preference_t > | OS proxy device driver interface class |
| Cdx::device< dx::guid, preference > | |
| Cdx::stream::device< dx::device< dx::guid, preference >, desc, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::asio::client::_device< desc, preference, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::device<::AudioObjectID, cf::preference > | |
| Cdx::stream::device< dx::device<::AudioObjectID, cf::preference >, dx::virtuel::stream::desc, dx::stream::stream< device< dx::virtuel::stream::desc, cf::preference, dx::stream::stream, group, false > >, group< device< dx::virtuel::stream::desc, cf::preference, dx::stream::stream, group, false > > > | |
| Cdx::coreaudio::_device< dx::virtuel::stream::desc, cf::preference, dx::stream::stream< device< dx::virtuel::stream::desc, cf::preference, dx::stream::stream, group, false > >, group< device< dx::virtuel::stream::desc, cf::preference, dx::stream::stream, group, false > > > | |
| Cdx::coreaudio::device< desc_t, preference_t, stream_t, group_t, _hosted > | CoreAudio client device |
| Cdx::stream::device< dx::device<::AudioObjectID, cf::preference >, dx::virtuel::stream::desc, stream< device< dx::virtuel::stream::desc, cf::preference, stream, group, _hosted > >, group< device< dx::virtuel::stream::desc, cf::preference, stream, group, _hosted > > > | |
| Cdx::coreaudio::_device< dx::virtuel::stream::desc, cf::preference, stream< device< dx::virtuel::stream::desc, cf::preference, stream, group, _hosted > >, group< device< dx::virtuel::stream::desc, cf::preference, stream, group, _hosted > > > | |
| Cdx::coreaudio::device< dx::virtuel::stream::desc, cf::preference, stream, group, true > | |
| Cdx::coreaudio::pod::device< desc_t, preference_t, stream_t, group_t > | Puppet endpoint's client device: it announces its own session to the counterpart, whose streaming is what animates it |
| Cdx::stream::device< dx::device<::AudioObjectID, cf::preference >, dx::virtuel::stream::desc, stream< device< dx::virtuel::stream::desc, cf::preference, stream, coreaudio::group, false > >, coreaudio::group< device< dx::virtuel::stream::desc, cf::preference, stream, coreaudio::group, false > > > | |
| Cdx::coreaudio::_device< dx::virtuel::stream::desc, cf::preference, stream< device< dx::virtuel::stream::desc, cf::preference, stream, coreaudio::group, false > >, coreaudio::group< device< dx::virtuel::stream::desc, cf::preference, stream, coreaudio::group, false > > > | |
| Cdx::coreaudio::device< dx::virtuel::stream::desc, cf::preference, stream, coreaudio::group > | |
| Cdx::coreaudio::stream::device< desc_t, preference_t, stream_t, group_t > | CoreAudio stream client device |
| Cdx::device<::MIDIDeviceRef, cf::preference > | |
| Cdx::stream::device< dx::device<::MIDIDeviceRef, cf::preference >, desc, stream< device< desc, cf::preference, stream > > > | |
| Cdx::coremidi::_device< desc, cf::preference, stream< device< desc, cf::preference, stream > > > | |
| Cdx::coremidi::device< desc_t, preference_t, stream_t > | CoreMIDI client device |
| Cdx::device< std::string, preference > | |
| Cdx::stream::control< dx::device< std::string, preference > > | |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > > > | |
| Cdx::midi::services::_device< desc, preference, stream< device< desc, preference, stream > > > | |
| Cdx::midi::services::device< desc_t, preference_t, stream_t > | Windows MIDI Services client device |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::wasapi::client::_device< desc, preference, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::wasapi::client::device< desc_t, preference_t, stream_t, group_t > | Bus's device as a product composes it: the endpoints of one Windows audio device, driven as any WASAPI application drives them |
| Cdx::stream::device< dx::device< std::string, preference >, desc, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::service::client::_device< desc, preference, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::service::client::device< desc_t, preference_t, stream_t, group_t > | < the app's consumer group (dx::stream::engine::group) wraps this bus's own |
| Cdx::device<> | |
| Cdx::device<::io_service_t, dx::preference > | |
| Cdx::service::device< dx::preference > | |
| Cdx::proxy::device< dx::preference > | |
| Cdx::usb::platform::device< dx::preference > | |
| Cdx::usb::platform::device< preference_t > | Platform half of a USB device: the IOKit registry entry, the IOUSBLib device interface and the open count over it - what dx::usb::device puts its descriptors and interfaces on |
| Cdx::device< std::string, dx::preference > | |
| Cdx::proxy::device< dx::preference > | |
| Cdx::stream::device< dx::device< std::string, dx::preference >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream, group > >, group< device< desc, dx::preference, dx::stream::shared::stream, group > > > | |
| Cdx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream, group > >, group< device< desc, dx::preference, dx::stream::shared::stream, group > > > | |
| Cdx::virtuel::stream::device< desc_t, preference_t, stream_t, group_t > | Bus's device as a product composes it: shared memory streams, so another process attaches to this device's rings by name |
| Cdx::driver< device_id_t, decltype(device_t::preference)> | |
| Cdx::driver< decltype(id), preference > | |
| Cdx::driver< decltype(id), cf::preference > | |
| Cdx::driver< decltype(_device_t::id), decltype(_device_t::preference)> | |
| Cdx::driver< decltype(device<>::id), decltype(device<>::preference)> | |
| Cdx::driver< decltype(id), dx::preference > | |
| Cdx::stream::object< device<> > | |
| Cdx::stream::control< stream::object< device<> > > | |
| Cdx::usb::platform::pipe< device<>, interface > | |
| Cdx::stream::control< dx::stream::object< device<> > > | |
| Cdx::usb::platform::pipe< device<>, interface > | |
| Cdx::device< id_t, preference_t > | Abstract commom base device interface class |
| Cdx::service::device< super_device_t > | |
| Cdx::asio::service::device< super_device_t > | Device the service hosts for ASIO clients: on arrival it registers the ASIO driver itself - HKLM\SOFTWARE\ASIO and the CLSID, the DLL path derived from the running service's own - and erases both at removal. No installer and no regsvr32 ever writes those keys |
| Cdx::stream::device< dx::device<::AudioObjectID, preference_t >, desc_t, stream_t, group_t > | |
| Cdx::stream::device< dx::device<::MIDIDeviceRef, preference_t >, desc_t, stream_t > | |
| Cdx::stream::device< dx::device< dx::guid, preference_t >, desc_t, stream_t, group_t > | |
| Cdx::driver< device_id_t, preference_t > | |
| Cdx::service::app | Service::app - Windows Service Windows services are essentially just a type of container for which startup conditions can be defined. The service interface does not support any additional communication. Communication between client and service are usually be implemented using Windows named pipes |
| Cdx::stream::object< _device_t > | Everything that belongs to one device: it keeps the reference and hands its diagnostics to the device, so a stream, a pin or a group reports as the device does |
| Cdx::stream::control< stream::object< device_t > > | |
| Cdx::usb::platform::pipe< device_t, usb::interface > | |
| Cdx::usb::platform::pipe< device_t, interface > | |
| Cdx::usb::platform::pipe< device_t, interface_t > | Platform half of a pipe: the transfers over the interface's endpoint and their completions - an isochronous one queues its result for the group's poll, since a completion counts and never schedules |
| Cdx::stream::control< object< device_t > > | |
| Cdx::stream::pin< device_t, _circular_t > | One client's attachment to a stream: the pin desc it was made from, the channels it takes of that stream's ring, and its own share of the stream's start count. Several pins - several clients - share one dx::stream::stream, which the device keeps by weak reference: the first pin of a stream creates it, the last one to go releases it, and neither stops a transport the others still run |
| Cdx::stream::control< dx::stream::object< device_t > > | |
| Cdx::usb::platform::pipe< device_t, usb::interface > | |
| Cdx::usb::platform::pipe< device_t, interface > | |
| Cdx::usb::platform::pipe< device_t, interface_t > | Platform half of a pipe: the transfers over the interface's endpoint and their completions - an isochronous one queues its result for the group's poll, since a completion counts and never schedules |
| Cdx::open< object_t > | RAII manage balanced object open/(close) |
| Cdx::os_event | Kernel/user space shared event representation |
| Cdx::parser | Cmd line parser |
| Cdx::test::device< super_device_t, engine_t > | |
| Cdx::test::device< super_device_t, typename super_device_t::group_t > | |
| Cdx::test::wasapi::device< super_device_t, engine_t > | WASAPI client test device: the generic test device plus the endpoint share mode |
| Cdx::install::parser | Driver package installer: a product's <Product>Install.exe, the installer's custom action (dxd_installer.wxs) and a command line alike |
| Cdx::select< parsers_t > | Select from aggregated drivers |
| Cdx::service::parser | Service control command line: install, start, stop, remove and run in the console, on a dx::service::manager of its own. Its settings live under HKLM\SOFTWARE\<id>, writable where the process is elevated |
| Cdx::test::device< super_device_t, _engine_t > | Test harness's device: the bus device plus its command line parser, and the streaming engine its tests run under - its own group_t slot, or the app's consumer group on its clock divider |
| Cdx::test::midi::device< super_device_t > | Generic test device, unchanged: a MIDI device's commands are its driver's |
| Cdx::test::driver< super_device_t, device_t, driver_t > | One bus's command set: the driver of that bus plus the commands the CLI dispatches on it. It keeps the device under test alone - a bus's tree must hold exactly that one device while a test runs |
| Cdx::parser::dispatch | One command: what it runs, how it reads in the help, and the commands nested under it. A word of parameter consumes the arguments that follow it before this one's own function runs, which is what makes the CLI hierarchical |
| Cdx::pci | Physical PCI stream descriptor |
| Cdx::pci::dma | Physical DMA stream descriptor |
| Cdx::pipe< rcv_t >::access | How a client opens the pipe where the caller names nothing: read and write, overlapped |
| Cdx::pipe< rcv_t >::server< instance_t, arg_t > | Server - accepts multiple concurrent pipe client connections Each accepted connection is served by its own pipe::server::instance, running on a dedicated read thread. run() keeps exactly one instance listening for the next client at all times: once ConnectNamedPipe() accepts a connection, that instance's own thread calls server::run() again - reaping already-concluded instances and spawning the next listener - before servicing its own connection. A concluded instance (client disconnected) therefore joins only at the start of the next run(), on a different thread: a std::jthread cannot join itself, so reaping cannot happen from within the concluding instance's own read thread. An otherwise idle server thus keeps its most recently used instance around until either the next connection or stop(), which unconditionally joins every instance - connected or not - synchronously before returning |
| Cdx::pipe< rcv_t >::server< instance_t, arg_t >::access | How the pipe is created where the caller names nothing: a duplex message pipe, overlapped |
| Cdx::power::ac | One processor power setting while on mains, set for the object's life and restored at its end - unless something else changed it meanwhile, which keeps that change |
| Cdx::power::acdc | Both at once - what a setting that must hold whatever the machine runs on takes |
| Cdx::power::dc | Same setting while on battery |
| Cdx::power::acdc | Both at once - what a setting that must hold whatever the machine runs on takes |
| Cdx::power::scheme | Machine's active power scheme, whose settings the classes above write |
| Cdx::power::disable_c3 | Deep idle states off for the object's life: a core entering one leaves a realtime thread's wakeup late, which a streaming tick pays for in glitches |
| Cdx::power::throttling | Process power throttling opt-out: Windows 11 ignores timer resolution requests of windowless (service/background) processes unless the process excludes itself from that throttling policy |
| Cdx::process::mmcss | Mmcss | thread priority/process priority class |
| Cdx::promoted< _value_t >::chain | Server that keeps the one it replaces: a derived class prepends its own step (the device's request to the hardware) and hands the rest to the server its base installed |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t >::chain< uint32_t > | |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t >::chain< value_t, proxy_value_t > | Drives one of the device's own promoted values through an IOCTL |
| Cdx::promoted< _value_t >::preference< preference_t, preference_value_t > | |
| Cdx::proxy::device< preference_t >::software | Software Device API instance |
| Cdx::proxy::driver< device_t >::notification | Device notifications this driver's window is subscribed to: one per interface class it matches, and one per open handle whose removal it must hear about |
| Cdx::proxy::driver< device_t >::notification::device | |
| Cdx::proxy::driver< device_t >::property | This bus's name in the device tree and the preference store |
| Cdx::proxy::driver< device_t >::setup::devices | Devices of a hardware id and the set's class - its own or its parent's, a composite device's function - the present ones unless all are asked for, what a range-for over setup(hwid) walks |
| Cdx::proxy::driver< device< pin_t > > | |
| Cdx::coreaudio::server::plugin< pin_t, device_t, driver_t > | CoreAudio server plugin |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t >::monitor | Driver's clock monitor, mapped on demand and handed back at the end of the scope; a driver that does not keep one answers not_implemented and the monitor stays empty |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t >::monitor::header | |
| Cdx::redirect::cerr | |
| Cdx::redirect::clog | |
| Cdx::redirect::cout | Event log entry kind each standard stream is written as - the three below are what dx::redirect::eventlog is instantiated with |
| Cdx::redirect::file | Stream into a file, beside its other sinks: instances naming one path share its buffer - one per ASIO client, left in any order - and each line is written once |
| Cdx::redirect::indent | One nesting level on a stream carrying an dx::redirect::indent::streambuf, taken for the object's scope: every line written inside it is prefixed. Levels nest LIFO per thread |
| Cdx::trace::indent::receipt | dx::trace::receipt indenting everything logged inside its scope by one level - what $ expands to |
| Cdx::redirect::indent::dflt | |
| Cdx::redirect::join | Buffer as a sink of a stream for the object's life - a sink's last member, so it leaves before the sink's own members go |
| Cdx::reference< object_t > | RAII manage balanced object open/(close) |
| Cdx::registry::property | |
| Cdx::resource< invalid_t > | Windows handle class bill wasn't sure wether an invalid handle is a nullptr or -1. Hence the invalid_t template parameter. (Usually its -1, but i.e. for file mappings its nullptr, etc.) |
| Cdx::pipe< request > | |
| Cdx::service::device< preference_t >::user_client | User client connection The each user_client holds a shared device reference |
| Cdx::template server< user_client, std::weak_ptr< device > > | |
| Cdx::template server< request > | |
| Cdx::pipe< dx::service::request< service::stream::data< desc > > > | |
| Cdx::pipe< dx::service::request< service::stream::data< desc_t > > > | |
| Cdx::pipe< dx::service::request< service::stream::data< typename device_t::desc_t > > > | |
| Cdx::pipe< request_t > | |
| Cdx::event< kernel > | Kernel triggerable user space event |
| Cdx::file | Open handle to a device interface - what every ioctl of a proxy device goes through |
| Cdx::proxy::device<> | |
| Cdx::proxy::device< dx::preference > | |
| Cdx::proxy::device< preference_t > | OS proxy device driver interface class |
| Cdx::pipe< rcv_t > | Pipe - Windows named pipes A dx::pipe is a bidirection, multi-client, multi-threaded communication channel between a pipe client and a pipe server. Both pipe sides feature a dedicated read thread to receive data from the opposite side notifiying installable listener std::functions. On the service side, a pipe server is instantiated for each pipe client connection. Until a new client connects, the pipe::server::instance remains waiting in pipe::server::instance::connect within its dedicated pipe read thread. If a client disconnects the pipe::server::instance terminates its read thread and is joined and released by the next pipe::server::run() or pipe::server::stop(). The pipe::server::instance super class can be template-parameterized to allow mimicking user client behaviour. Windows arbitrarily serializes operations on synchronous pipe handles, limiting it's named pipe concurrent synchronous operation capabilities to exactly one synchronous pipe per process (i.e. exactly one per process), effectively forcing both the pipe::server and the pipe client to be implemented using asynchronous OVERLAPPED I/O — introducing a whole host of unnecessary pitfalls and awkward behaviors. However, the MSDN documentation here apparently describes a different piece of software. Though dx::pipes can be used for any communication between user space software its purpose is to allow Windows service communication. A service itself runs with elevated privileges, whereas the clients typically run in the normal user context. Therefore, the pipe servers have defined their default ACLs for non-privileged access |
| Cdx::resource< nullptr > | |
| Cdx::shared::memory< dx::stream::clock::monitor > | |
| Cdx::stream::device< super_device_t, _desc_t, _stream_t, _group_t >::monitor | Device's performance counters in shared memory, so a second process (the test app's clock monitor) reads what the streaming session measures; every fetch initializes an unused buffer |
| Cdx::shared::memory< circular_t > | |
| Cdx::stream::shared::stream< device_t, circular_t > | |
| Cdx::stream::shared::stream< device_t, circular_t, super_stream_t, event_t > | |
| Cdx::shared::memory< dx::circular > | |
| Cdx::stream::shared::stream< device_t, dx::circular > | |
| Cdx::coreaudio::pod::stream< device_t, circular_t > | Pod's stream: the ring is the counterpart's, mapped by name, and open, close, start and stop are told to it as properties - nothing here touches hardware |
| Cdx::stream::shared::stream< device_t, circular_t, super_stream_t, event_t > | Stream whose ring and events live in named shared memory, so another process attaches to them by name - the host sizes and resets the ring, a hosted device takes what it finds (device_t::hosted) |
| Cdx::process | Child process with its handles, started and waited for; mmcss inside it is what a streaming thread of this process registers with the multimedia scheduler as |
| Cdx::shared::memory< buffer_t > | MacOS user space shared memory |
| Cdx::shared::reference | Cross-process, crash-safe named reference count |
| Cdx::shared::memory< dx::stream::clock::monitor > | |
| Cdx::shared::memory< circular_t > | |
| Cdx::shared::memory< dx::circular > | |
| Cdx::shared::memory< buffer_t > | MacOS user space shared memory |
| Cdx::service::accept | |
| Cdx::service::accept::to | |
| Cdx::service::client::driver< device_t >::property | |
| Cdx::service::client::target | Service client stream's whole hardware identity: its direction - the device behind the service names its own |
| Cdx::service::device< preference_t >::promoted | Service::device::chain handle request to/from device::promoted and pipe |
| Cdx::service::driver< driver_t >::property | This bus's name in the device tree and the preference store |
| Cdx::service::manager | Service as the control manager sees it: installed, started, stopped and removed from here, its state followed by the promoted below |
| Cdx::service::client::driver< device_t > | Service client driver interface class |
| Cdx::service::parser | Service control command line: install, start, stop, remove and run in the console, on a dx::service::manager of its own. Its settings live under HKLM\SOFTWARE\<id>, writable where the process is elevated |
| Cdx::service::request< data_t > | One message on the service's pipe: what is asked, what came back and the value it carries. Every setting a hosted device mirrors has its own id here, so a client's promoted reaches the service's device with one round trip |
| Cdx::service::start_type | |
| Cdx::service::start_type::from | |
| Cdx::service::start_type::to | |
| Cdx::service::state | Service states, start types and accepted controls by their SDK names - what a status is printed and a command line argument read as |
| Cdx::service::state::to | |
| Cdx::shared::guard< object_t > | Synchronize write/shared read access/destruction |
| Cdx::shared::guard< listeners< listener_t > > | |
| Cdx::listen< listener_t > | Guarded listerners map used from the server side to manage listeners |
| Cdx::shared::guard< listeners< std::function< void(class dx::pipe::server::instance &, const rcv_t &)> > > | |
| Cdx::listen< std::function< void(class dx::pipe::server::instance &, const rcv_t &)> > | |
| Cdx::shared::guard< listeners< std::function< void(const double &)> > > | |
| Cdx::listen< std::function< void(const double &)> > | |
| Cdx::shared::guard< listeners< std::function< void(const dx::service::request< service::stream::data< desc > > &)> > > | |
| Cdx::listen< std::function< void(const dx::service::request< service::stream::data< desc > > &)> > | |
| Cdx::shared::guard< listeners< std::function< void(const dx::service::request< service::stream::data< desc_t > > &)> > > | |
| Cdx::listen< std::function< void(const dx::service::request< service::stream::data< desc_t > > &)> > | |
| Cdx::shared::guard< listeners< std::function< void(const dx::service::request< service::stream::data< typename device_t::desc_t > > &)> > > | |
| Cdx::listen< std::function< void(const dx::service::request< service::stream::data< typename device_t::desc_t > > &)> > | |
| Cdx::shared::guard< listeners< std::function< void(const rcv_t &)> > > | |
| Cdx::listen< std::function< void(const rcv_t &)> > | |
| Cdx::shared::guard< listeners< std::function< void(const request_t &)> > > | |
| Cdx::listen< std::function< void(const request_t &)> > | |
| Cdx::shared::guard< listeners< std::function< void(const uint32_t &)> > > | |
| Cdx::listen< std::function< void(const uint32_t &)> > | |
| Cdx::shared::guard< listeners< std::function< void(const value_t &)> > > | |
| Cdx::listen< std::function< void(const value_t &)> > | |
| Cdx::shared::lockfree::list< entry_t > | Entries a real time walk visits without a lock, in user mode and the kernel alike |
| Cdx::shared::memory< buffer_t >::header | What every shared segment carries ahead of its payload: the version the host wrote it with and its size, so an attaching process refuses a segment of another build |
| Cdx::source< _event_t, _clock_t > | Clock source base: the only thing that may signal a tick - itself the event driven source (hw clock fan-out) |
| Cdx::clock< dx::source<> > | |
| Cdx::stream::control< dx::clock< dx::source<> > > | |
| Cdx::stream::group< device_t, dx::source<> > | |
| Cdx::coreaudio::group< device_t, source_t > | CoreAudio client's own streaming group: the HAL I/O proc runs its session |
| Cdx::stream::group< _device_t, source_t > | Streaming group: the streams of one device sharing a desc::stream::group id, streamed together by one realtime thread |
| Cdx::timer< dx::event< kernel >, frame > | |
| Cdx::usb::clock::source< device_t > | USB bus frame clock source: one tick per bus frame - a high resolution OS timer wait toward the frame objective, optionally handing over to yield/spin polling covering user mode jitter for low latency sessions |
| Cdx::clock< source_t > | Realtime tick mechanism: one thread per clock - run/halt lifecycle and tick dispatch; the source_t base owns objective and wait |
| Cdx::free_run< event_t, clock_t > | Free running timer source: condition variable timer at system timer resolution; duration zero degenerates to the event driven base |
| Cdx::timer< event_t, clock_t > | High resolution timer source: an OS timer wait toward the objective, optionally handing over to yield/spin polling covering the last lead; self pacing by duration like free_run, or paced by an override's sync() |
| Cdx::spin< clock_t > | |
| Cdx::stream::channel::control | Kernel streaming client's own header beside its channel buffers: the frame counter and the last two buffer switch timestamps, from which a client derives where the hardware stands |
| Cdx::stream::channel::open< bus_t, max_channels > | Generic stream open request |
| Cdx::stream::channel::opened< data_t, channels > | Generic streaming channel buffer description |
| Cdx::stream::clock | Select/get stream sample rate/iosize |
| Cdx::stream::clock::consumer | One clock consumer's share of the domain: its buffer switch is due every iosize samples |
| Cdx::stream::clock::monitor | Performance monitor shared memory |
| Cdx::stream::clock_value | Value asked of, or answered by, one clock domain (sample rate, clock source) |
| Cdx::stream::control< object_t >::pause | Session held open across a change that needs it stopped: the counted shares are taken out for the scope and handed back at its end, so clients starting or stopping meanwhile keep their own |
| Cdx::stream::cursor | Client's own place in a ring and the margin it keeps to the transport |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources > | Device streaming interface descriptor |
| Cdx::stream::device< dx::device< dx::guid, preference >, desc, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::stream::device< dx::device<::MIDIDeviceRef, cf::preference >, desc, stream< device< desc, cf::preference, stream > > > | |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > > > | |
| Cdx::stream::device< desc, preference, stream > | |
| Cdx::stream::device< dx::proxy::device< dx::preference >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream, group > >, group< device< dx::stream::desc<>, dx::preference, stream, group > > > | |
| Cdx::stream::device< dx::device< std::string, preference >, desc, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::stream::device< dx::device< std::string, dx::preference >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream, group > >, group< device< desc, dx::preference, dx::stream::shared::stream, group > > > | |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::clock | Clock domain of the device: its sources, the rates it serves and everything the streams of that domain are timed by |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::clock::defaults | What the device asks for where nothing was stored yet - every one of them a preference's default |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::clock::defaults::iosize | Buffer sizes offered to applications, in clock ticks: what a host may ask for and what the ring is sized from |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::clock::defaults::sync | |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::clock::setting | One clock source of this domain: internal, or an external one the device locks to |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::clock::setting::external | |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::firmware | Device's own: what the bus reports (USB: bcdDevice, iSerialNumber) unless a product knows a vendor way; the serial number is what a license binds to (DSN) |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::name_id | Name with the bus entity's own id behind it - what a vendor, a model or a selectable source is called and how the bus addresses it |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::stream | Dx::desc::stream interface descriptor |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::stream::config | Dx::desc::stream::config interface descriptor |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::stream::config::clock | |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::stream::config::clock::sync | |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::stream::config::options | |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::stream::config::options::spdif | |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::stream::config::transaction | What one transfer on the bus carries where it is not simply a run of sample frames: a granularity the bus enforces, or a vendor's own payload size |
| Cdx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::stream::pin | Pin of the stream: the channels a host attaches to as one entity, their format and what they are wired to. A stream's channels may be split into several pins, and a hidden one is not offered to the host |
| Cdx::stream::desc< target, 2, 2 > | |
| Cdx::stream::device< dx::device<::AudioObjectID, cf::preference >, dx::virtuel::stream::desc, dx::stream::stream< device< dx::virtuel::stream::desc, cf::preference, dx::stream::stream, group, false > >, group< device< dx::virtuel::stream::desc, cf::preference, dx::stream::stream, group, false > > > | |
| Cdx::stream::device< dx::device<::AudioObjectID, cf::preference >, dx::virtuel::stream::desc, stream< device< dx::virtuel::stream::desc, cf::preference, stream, group, _hosted > >, group< device< dx::virtuel::stream::desc, cf::preference, stream, group, _hosted > > > | |
| Cdx::stream::device< dx::device<::AudioObjectID, cf::preference >, dx::virtuel::stream::desc, stream< device< dx::virtuel::stream::desc, cf::preference, stream, coreaudio::group, false > >, coreaudio::group< device< dx::virtuel::stream::desc, cf::preference, stream, coreaudio::group, false > > > | |
| Cdx::stream::device< super_device_t, _desc_t, _stream_t, _group_t >::pause | RAII: pauses every one of this device's groups (remembered count, force-stopped) across a streams structure mutation, restarts all on destruction |
| Cdx::stream::device< super_device_t, _desc_t, _stream_t, _group_t >::property | Preference keys of this device's settings, named once - the store's layout is these words, and a host's own property names never reach the store |
| Cdx::stream::device< super_device_t, _desc_t, _stream_t, _group_t >::property::sync | |
| Cdx::stream::device< super_device_t, _desc_t, _stream_t, _group_t >::property::sync::cycle | |
| Cdx::stream::device< super_device_t, _desc_t, _stream_t, _group_t >::property::sync::strategy | |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference_t > >, desc_t, stream_t, group_t >::property | |
| Cdx::wasapi::client::_device< desc_t, preference_t, stream_t, group_t >::property | Beside the generic settings: the share mode this device's endpoints are opened in, which decides whether a rate other than the engine's mix format is reachable at all |
| Cdx::stream::encoder | Per channel controls a stream carries; what a device does not have is emulated where it has the gain, and the host publishes one control per bit |
| Cdx::stream::encoder::index | |
| Cdx::stream::engine::consumer< group_t, io_t, circular_t > | App's consumer group for a bus device's group_t slot: engine::group over the bus's own group and the device's audio pin |
| Cdx::stream::engine::group< group_t, _pin_t, _io_t, circular_t >::converter | |
| Cdx::stream::engine::group< group_t, _pin_t, _io_t, circular_t >::entry< sample_t > | |
| Cdx::stream::format | What one sample frame looks like, container and content apart: the resolution inside the container's size, its alignment there and its endianness. operator == is a match against a wish, not an identity: a member left at zero in the asked format matches anything, which is how a pin states audio alone and a ring adopts the one format its participants agree on (dx::stream::format::align). The named constants below are the formats the converters of dx_circular.h move - dx::stream::sample keys them |
| Cdx::stream::iosize | Client's share of a clock domain: the samples between its buffer switches and the event the clock signals it on |
| Cdx::stream::opened< object_t > | Generic shared streaming buffer description |
| Cdx::stream::settings< device_t, store > | Group's settings per side of its ring: the side's wait strategy on the clock and its lead per direction. The owner keeps them in its store, keyed and defaulted by role; a hosted device (device_t::hosted) mirrors the transport's through its mirror type, each born with the transport that asks the host |
| Cdx::stream::settings< device_t, store >::client | Client side: the group's clients (app engine, service client, ASIO/CoreAudio/WASAPI host) and the ring margin they keep to the transport - the client's own, in its store |
| Cdx::stream::group< device_t, dx::source< dx::shared::event > > | |
| Cdx::proxy::stream::group< device_t > | OS proxy's own streaming group: the kernel driver owns its clock, started and stopped with this group's session |
| Cdx::stream::group< device_t, source_t > | |
| Cdx::stream::group< device_t, clock::source< device_t > > | |
| Cdx::usb::stream::group< device_t > | USB isoc streaming group: one bus frame aligned tick per USB frame, the one thread running the pipes' request pipelines and moving their data |
| Cdx::stream::group< device_t, dx::timer<> > | |
| Cdx::virtuel::stream::group< device_t > | Virtual device's own transport: a device without hardware, so the tick moves silence - a transport reader takes and clears at rx, a transport writer clears and publishes at tx, the clients anchor to it - and runs the device's clock at the desc's tick |
| Cdx::stream::group< device_t, dx::free_run< dx::event<> > > | |
| Cdx::asio::client::group< device_t > | ASIO client's own streaming group: the underlying SDK driver runs its session, ticked by the driver's own bufferSwitch callback |
| Cdx::stream::group< device_t, dx::free_run< dx::shared::event > > | |
| Cdx::coreaudio::group< device_t, dx::free_run< dx::shared::event > > | |
| Cdx::coreaudio::pod::group< device_t > | Pod client's own streaming group: the HAL I/O proc's session like any client's - it is what keeps the counterpart's process scheduled tightly, the pod's own I/O proc moves nothing - on the counterpart's hw clock, a shared event the device's hw_clock() opens by name |
| Cdx::service::client::group< device_t > | Service client's own streaming group: its transport side is the service's, chain-forwarded |
| Cdx::stream::group< device_t, dx::source< dx::event< dx::kernel > > > | |
| Cdx::wasapi::client::group< device_t > | WASAPI client streaming group: one endpoint's engine period thread, signalled by the audio engine through the stream's client |
| Cdx::stream::group< device_t, dx::source<> > | |
| Cdx::stream::group< _device_t, source_t > | Streaming group: the streams of one device sharing a desc::stream::group id, streamed together by one realtime thread |
| Cdx::stream::settings< device_t, !device_t::hosted > | |
| Cdx::stream::settings< device_t, store >::transport | Transport side: the tick and the frames it moves data ahead of/behind the device, kept per wait strategy - a strategy switch rebinds the leads to the new strategy's store and reloads them. A bus's own group runs its tick by them; a hosted device's group mirrors its host's, without a store |
| Cdx::stream::group< device_t, dx::source< dx::shared::event > > | |
| Cdx::stream::group< device_t, source_t > | |
| Cdx::stream::group< device_t, clock::source< device_t > > | |
| Cdx::stream::group< device_t, dx::timer<> > | |
| Cdx::stream::group< device_t, dx::free_run< dx::event<> > > | |
| Cdx::stream::group< device_t, dx::free_run< dx::shared::event > > | |
| Cdx::stream::group< device_t, dx::source< dx::event< dx::kernel > > > | |
| Cdx::stream::group< device_t, dx::source<> > | |
| Cdx::stream::group< _device_t, source_t > | Streaming group: the streams of one device sharing a desc::stream::group id, streamed together by one realtime thread |
| Cdx::stream::settings_promoted< device_t, store > | |
| Cdx::stream::settings_promoted< device_t, false > | Hosted device's, born with the transport to its host (dx_value.h: no promoted is born empty) |
| Cdx::stream::shared::stream< device_t, dx::circular, dx::stream::control< dx::stream::object< device_t > >, dx::shared::event > | |
| Cdx::service::client::stream< device_t, circular_t, super_stream_t, event_t > | Stream of a device the service hosts: the ring is the service's, in shared memory, and this client is a participant in it |
| Cdx::stream::start< object_t > | RAII object start/stop balancer |
| Cdx::stream::stream< device_t, circular_t, dx::stream::control< dx::stream::object< device_t > >, dx::shared::event > | |
| Cdx::stream::shared::stream< device_t, circular_t > | |
| Cdx::stream::stream< device_t, dx::circular, dx::stream::control< dx::stream::object< device_t > >, dx::shared::event > | |
| Cdx::stream::shared::stream< device_t, dx::circular > | |
| Cdx::asio::client::stream< device_t, circular_t, super_stream_t, event_t > | One side of the ASIO driver as a stream: the buffer infos name this side's channels, which the host driver fills and empties at every buffer switch |
| Cdx::proxy::stream::stream< device_t, circular_t, super_stream_t, event_t > | Pin's stream on the kernel driver: the ring is the driver's, mapped into this process, and this client is a participant in it - it anchors a cursor where the indices stand and never resets them (dx::stream::cursor) |
| Cdx::stream::shared::stream< device_t, circular_t, super_stream_t, event_t > | Stream whose ring and events live in named shared memory, so another process attaches to them by name - the host sizes and resets the ring, a hosted device takes what it finds (device_t::hosted) |
| Cdx::wasapi::client::stream< device_t, circular_t, super_stream_t, event_t > | WASAPI client stream: one endpoint's audio client, moved by its group one engine period per tick between the engine's buffer and the circular buffer |
| Cdx::string | Fixed size name that crosses a process or kernel boundary by value, where a std::string cannot: the platform's file name length, always terminated, converting to and from std::string |
| Cdx::test::device< super_device_t, _engine_t >::impulse | One impulse test: what an analog loop keeps is its timing alone |
| Cdx::test::device< super_device_t, _engine_t >::mask | Channels a monitor's callback works on: one word per direction, plus the mix target |
| Cdx::test::device< super_device_t, _engine_t >::sine | One generator tone: the channels it feeds and its phase, carried between callbacks |
| Cdx::test::driver< super_device_t, device_t, driver_t >::match_helper< matching_t > | |
| Cdx::test::driver< super_device_t, device_t, driver_t >::match_helper< std::set< std::string > > | |
| Cdx::test::driver< super_device_t, dx::test::device< super_device_t >, dx::proxy::driver< dx::test::device< super_device_t > > > | |
| Cdx::test::usb::driver< super_device_t, device_t, driver_t > | Raw USB commands beside the generic ones: the device's configuration and what a configuration change does to a running session |
| Cdx::test::driver< super_device_t, dx::test::device< super_device_t >, dx::virtuel::driver< dx::test::device< super_device_t > > > | |
| Cdx::test::virtuel::driver< super_device_t, device_t, driver_t > | Device tree commands of the in-process bus: a device is added to and removed from the preference store here, its desc taken from a file or the default |
| Cdx::test::driver< super_device_t, dx::test::midi::device< super_device_t >, dx::proxy::driver< dx::test::midi::device< super_device_t > > > | |
| Cdx::test::midi::driver< super_device_t, midi_pin_t, device_t, driver_t, super_driver_t > | MIDI exerciser: it sends over one port and counts what comes back on another - the round trip's losses, its slips and its latency, no audio ring involved |
| Cdx::test::load | Load scenario the streaming monitor runs its session under: threads of the named kind for the object's lifetime |
| Cdx::test::surprise::asynchronous< driver_t > | Concurrently drives synchronous conclude()/launch() cycles (device tree arrival/removal) against whatever else is using the driver, on its own thread |
| Cdx::test::surprise::synchronous< driver_t > | Single, synchronous mid-operation conclude()/launch() cycle, resuming streaming (if it was active) at its prior sample rate once the device is back |
| Cdx::themed | |
| Cdx::thread::prio | Thread::prio |
| Cdx::thread::workgroup | Apple audio workgroup: a realtime thread of a driver's own joins the workgroup of the device it serves, so the scheduler treats them as one deadline group (macOS 11) |
| Cdx::thread::workgroup::interval | One work interval of the group: started with its deadline and moved on by update() at every tick |
| Cdx::thread::workgroup::join | This thread's membership, held for the scope |
| Cdx::trace::receipt | $ trace's entry and exit lines for one scope, the exit carrying the time spent - debug builds alone |
| Cdx::trace::indent::receipt | dx::trace::receipt indenting everything logged inside its scope by one level - what $ expands to |
| Cdx::tty | Terminal behind a file descriptor: its presence, its raw mode and its background colour |
| Cdx::usb::__::endpoint | |
| Cdx::usb::pipe< device_t > | |
| Cdx::usb::pipe< device_t > | |
| Cdx::usb::__::interface | |
| Cdx::usb::interface | Interface of the device: the platform's handle to it and the descriptors of its current alternate setting, which update() re-reads whenever the setting is selected |
| Cdx::usb::__request_type | Standard USB control request definitions |
| Cdx::usb::control | Setup packet: the request and its wValue/wIndex/wLength. length is the data stage's size - a request carrying data with length 0 is stalled by the device |
| Cdx::usb::request< data_t > | |
| Cdx::usb::request< data_t, typename > | |
| Cdx::usb::request< data_t > | |
| Cdx::usb::audio::descriptor | USB audio class descriptors |
| Cdx::usb::audio::descriptor::endpoint | |
| Cdx::usb::audio::descriptor::endpoint::midi | |
| Cdx::usb::audio::descriptor::endpoint::streaming | |
| Cdx::usb::audio::descriptor::endpoint::subtype | |
| Cdx::usb::audio::descriptor::head | |
| Cdx::usb::audio::descriptor::endpoint::midi::general< 1 > | |
| Cdx::usb::audio::descriptor::endpoint::midi::general< jacks > | |
| Cdx::usb::audio::descriptor::endpoint::streaming::general | |
| Cdx::usb::audio::descriptor::interface::control::head | |
| Cdx::usb::audio::descriptor::interface::control::clock_selector< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v1::clock_selector< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v1::clock_selector1 | |
| Cdx::usb::audio::descriptor::interface::control::v2::clock_selector< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v2::clock_selector1 | |
| Cdx::usb::audio::descriptor::interface::control::v1::clock_selector< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v2::clock_selector< channels > | |
| Cdx::usb::audio::descriptor::interface::control::clock_selector< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::effect_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::extension_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v1::extension_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v1::extension_unit1 | |
| Cdx::usb::audio::descriptor::interface::control::v2::extension_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v2::extension_unit1 | |
| Cdx::usb::audio::descriptor::interface::control::v1::extension_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v2::extension_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::extension_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::feature_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::processing_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v1::processing_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v1::processing_unit1 | |
| Cdx::usb::audio::descriptor::interface::control::v2::processing_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v2::processing_unit1 | |
| Cdx::usb::audio::descriptor::interface::control::v1::processing_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v2::processing_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::processing_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::selector_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v1::selector_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v1::selector_unit1 | |
| Cdx::usb::audio::descriptor::interface::control::v2::selector_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v2::selector_unit1 | |
| Cdx::usb::audio::descriptor::interface::control::v1::selector_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v2::selector_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::selector_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::clock_multiplier | |
| Cdx::usb::audio::descriptor::interface::control::clock_selector< pins > | |
| Cdx::usb::audio::descriptor::interface::control::clock_source | |
| Cdx::usb::audio::descriptor::interface::control::effect_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v1::effect_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v1::effect_unit1 | |
| Cdx::usb::audio::descriptor::interface::control::v2::effect_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v2::effect_unit1 | |
| Cdx::usb::audio::descriptor::interface::control::v1::effect_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v2::effect_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::extension_unit< pins > | |
| Cdx::usb::audio::descriptor::interface::control::feature_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v1::feature_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v1::feature_unit1 | |
| Cdx::usb::audio::descriptor::interface::control::v2::feature_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v2::feature_unit1 | |
| Cdx::usb::audio::descriptor::interface::control::v1::feature_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::v2::feature_unit< channels > | |
| Cdx::usb::audio::descriptor::interface::control::header | |
| Cdx::usb::audio::descriptor::interface::control::processing_unit< pins > | |
| Cdx::usb::audio::descriptor::interface::control::samplerate_converter | |
| Cdx::usb::audio::descriptor::interface::control::selector_unit< pins > | |
| Cdx::usb::audio::descriptor::interface::control::input_terminal::head | |
| Cdx::usb::audio::descriptor::interface::control::input_terminal::v1 | |
| Cdx::usb::audio::descriptor::interface::control::input_terminal::v2 | |
| Cdx::usb::audio::descriptor::interface::control::mixer_unit< pins >::head | |
| Cdx::usb::audio::descriptor::interface::control::mixer_unit< pins >::v1 | |
| Cdx::usb::audio::descriptor::interface::control::mixer_unit< pins >::v2 | |
| Cdx::usb::audio::descriptor::interface::control::output_terminal::head | |
| Cdx::usb::audio::descriptor::interface::control::output_terminal::v1 | |
| Cdx::usb::audio::descriptor::interface::control::output_terminal::v2 | |
| Cdx::usb::audio::descriptor::interface::head | |
| Cdx::usb::audio::descriptor::interface::midi::head | |
| Cdx::usb::audio::descriptor::interface::midi::element< 1, 1 > | |
| Cdx::usb::audio::descriptor::interface::midi::element< pins, caps > | |
| Cdx::usb::audio::descriptor::interface::midi::header | |
| Cdx::usb::audio::descriptor::interface::midi::jack::head | |
| Cdx::usb::audio::descriptor::interface::midi::jack::out< 1 > | |
| Cdx::usb::audio::descriptor::interface::midi::jack::in | |
| Cdx::usb::audio::descriptor::interface::midi::jack::out< pins > | |
| Cdx::usb::audio::descriptor::interface::streaming::format::head | |
| Cdx::usb::audio::descriptor::interface::streaming::format::ex::type2 | |
| Cdx::usb::audio::descriptor::interface::streaming::format::type1::v1 | |
| Cdx::usb::audio::descriptor::interface::streaming::format::type1::v2 | |
| Cdx::usb::audio::descriptor::interface::streaming::format::ex::type1 | |
| Cdx::usb::audio::descriptor::interface::streaming::format::ex::type3 | |
| Cdx::usb::audio::descriptor::interface::streaming::format::type2::v1 | |
| Cdx::usb::audio::descriptor::interface::streaming::format::type2::v2 | |
| Cdx::usb::audio::descriptor::interface::streaming::format::type4 | |
| Cdx::usb::audio::descriptor::interface::streaming::head | |
| Cdx::usb::audio::descriptor::interface::streaming::encoder | |
| Cdx::usb::audio::descriptor::interface::streaming::general::v1 | |
| Cdx::usb::audio::descriptor::interface::streaming::general::v2 | |
| Cdx::usb::audio::descriptor::interface | USB audio class interface descriptors |
| Cdx::usb::audio::descriptor::interface::control | USB audio class control interface descriptors |
| Cdx::usb::audio::descriptor::interface::control::input_terminal | |
| Cdx::usb::audio::descriptor::interface::control::mixer_unit< pins > | |
| Cdx::usb::audio::descriptor::interface::control::output_terminal | |
| Cdx::usb::audio::descriptor::interface::control::subtype | |
| Cdx::usb::audio::descriptor::interface::control::v1 | Every control entity as Audio Device Class 1.0 lays it out; v2 below is the same set in 2.0 - the header's bcdADC says which a device speaks, and dxd configures ADC1 devices |
| Cdx::usb::audio::descriptor::interface::control::v1::mixer_unit< pins > | |
| Cdx::usb::audio::descriptor::interface::control::v1::mixer_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v1::mixer_unit1 | |
| Cdx::usb::audio::descriptor::interface::control::v2 | |
| Cdx::usb::audio::descriptor::interface::control::v2::mixer_unit< pins > | |
| Cdx::usb::audio::descriptor::interface::control::v2::mixer_unit< 1 > | |
| Cdx::usb::audio::descriptor::interface::control::v2::mixer_unit1 | |
| Cdx::usb::audio::descriptor::interface::midi | |
| Cdx::usb::audio::descriptor::interface::midi::jack | |
| Cdx::usb::audio::descriptor::interface::midi::subtype | |
| Cdx::usb::audio::descriptor::interface::streaming | USB audio class streaming interface descriptors |
| Cdx::usb::audio::descriptor::interface::streaming::format | |
| Cdx::usb::audio::descriptor::interface::streaming::format::ex | |
| Cdx::usb::audio::descriptor::interface::streaming::format::type1 | |
| Cdx::usb::audio::descriptor::interface::streaming::format::type2 | |
| Cdx::usb::audio::descriptor::interface::streaming::format::v1 | |
| Cdx::usb::audio::descriptor::interface::streaming::format::v2 | |
| Cdx::usb::audio::descriptor::interface::streaming::format::v2::ex | |
| Cdx::usb::audio::descriptor::interface::streaming::general | |
| Cdx::usb::audio::descriptor::interface::streaming::subtype | |
| Cdx::usb::audio::descriptor::interface::streaming::v1 | |
| Cdx::usb::audio::descriptor::interface::streaming::v2 | |
| Cdx::usb::audio::descriptor::type | |
| Cdx::usb::audio::isoc | Isochronous cycle of one pipe: the slots a session rotates through, each carrying the bus frame it is scheduled for, its request size and the lines its micro frames hold |
| Cdx::usb::audio::isoc::cycle | |
| Cdx::usb::isoc::pipeline< dx::usb::stream::pipe > | |
| Cdx::usb::isoc::pipeline< dxd::usb::stream::pipe > | |
| Cdx::usb::isoc::pipeline< pipe_t > | One isochronous endpoint's request pipeline and data move over the slots of a round, the same in every environment |
| Cdx::usb::audio::isoc::cycle::tick | |
| Cdx::usb::audio::range< ranges_t > | ADC2 control's answer: subranges of minimum, maximum and resolution |
| Cdx::usb::audio::subclass | |
| Cdx::usb::capture | IOUSBHost framework's device capture, its class reached through the Objective-C runtime: the class driver's clients are terminated, the device stays configured and open to other processes' interface clients, the drivers match again with the release |
| Cdx::usb::clock::frame | Chrono conforming bus frame clock: frames since bus start; now() maps the OS timestamp onto the frame counter via the tick thread's correlation |
| Cdx::usb::descriptor | Standard descriptors over the platform's own declarations: one spelling for the walkers of dx_usb_audio.h, whatever SDK the build takes them from |
| Cdx::usb::descriptor::type | |
| Cdx::usb::endpoint | USB specific errors |
| Cdx::usb::endpoint::attributes | Endpoint's bmAttributes: the transfer type, how an isochronous endpoint synchronizes, and whether it carries data or the feedback for another endpoint |
| Cdx::usb::ezusb::an21 | Chip's CPU control register (bit 0: reset) and where its internal RAM ends |
| Cdx::usb::ezusb::fx2 | |
| Cdx::usb::isoc::correlation | Bus frame clock's correlation with the timestamp clock, the same in every environment: which frame the tick serves, where the wire is now, when a frame starts |
| Cdx::usb::isoc::frame | One frame of a request: what was asked for, what the controller delivered and its status - laid over the platform's own frame structure, so a request is filled once and submitted as it stands |
| Cdx::usb::isoc::result | Completed asynchronous isoc request, as pulled by a platform pipe's poll() |
| Cdx::usb::isoc::session< group_t > | Streaming session's tick over a group's pipelines, the same in every environment |
| Cdx::usb::midi< buffer_t >::msg | USB MIDI endpoint element types: defining the element size for a single USB MIDI pipe request |
| Cdx::usb::platform::device< preference_t >::void_struct | |
| Cdx::usb::platform::pipe< device_t, interface_t >::isoc | What an isochronous pipe needs beside its requests: the micro frames a packet is spread over and the registered buffer they are served from |
| Cdx::usb::platform::pipe< device_t, interface_t >::isoc::buffer | |
| Cdx::usb::stream::pipe< device_t, circular_t, stream_t >::cache | What the tick reads instead of asking a promoted: the derived transaction sizes, the encoder stages and the in slot's sentinel - none of them may block or lock |
| Cdx::usb::stream::pipe< device_t, circular_t, stream_t >::cache::encoder | |
| Cdx::usb::stream::pipe< device_t, circular_t, stream_t >::isoc | What this pipe's session needs beside its own requests: the feedback ring of lines per frame, and an explicit feedback endpoint's own slots |
| Cdx::virtuel::driver< device_t >::property | This bus's own preference keys: the store's subtree the device tree lives in |
| Cdx::virtuel::stream::target | Virtual stream's whole hardware identity: its direction, since there is no bus to address |
| Cdx::void_struct | Empty stand-in where a template needs a type but nothing is carried - it streams nothing |
| Cdx::wasapi::client::driver< device_t >::property | This bus's name in the device tree and the preference store |
| Cdx::wasapi::client::target | WASAPI stream's hardware identity: the endpoint it belongs to, by the MMDevice id, and its index within the device - one endpoint per direction and channel pair, several of them making up one device |
| Cdx::wasapi::reference< object_t > | COM interface reference |
| Cdx::wasapi::task_memory< type_t > | CoTaskMemAlloc'd out parameter |
| Cdx::window< driver_t > | Message only window on a thread of its own: WM_DEVICECHANGE and WM_POWERBROADCAST are what Windows delivers device arrival, removal and sleep through, and there is no window less way to take them |
| Cdx::x509::certificate | |
| Cdx::xpc::connection | Client's connection to a launchd mach service: a request is one number under the request's name, answered with a status |
| Cdx::daemon::capture | Peer's request for the daemon's capture of a registry entry, held while the connection stands: a refused or absent daemon means no capture |
| Cdx::xpc::listener | Launchd mach service: every peer's requests run the handler on the queue, a peer's end runs the closure there |
| Cdx::yield< clock_t > | Stateless polling wait strategies: trade a core for the last microseconds toward an objective |
| Cdxd::__atomic_pointer< type_t > | Atomic pointer operations |
| Cdxd::__atomic_pointer< type_t * > | |
| Cdxd::atomic< type_t * > | Explicitely specify pointer template argument: |
| Cdxd::__atomic_scalar< size, type_t > | |
| Cdxd::__atomic_scalar< 4, type_t > | 32bit atomic operations |
| Cdxd::__atomic_scalar< 8, type_t > | 64bit atomic operations |
| Cdxd::__atomic_scalar< sizeof(event *), event * > | |
| Cdxd::atomic< event * > | |
| Cdxd::linked::list< event > | |
| Cdxd::doubly::linked::list< event > | |
| Cdxd::__atomic_scalar< sizeof(int), int > | |
| Cdxd::atomic< int > | |
| Cdxd::multichannel::stream< channel_t >::in | Kernel stream mapped client reference counted in channel buffers |
| Cdxd::__atomic_scalar< sizeof(item_t *), item_t * > | |
| Cdxd::atomic< item_t * > | |
| Cdxd::linked::list< item_t > | |
| Cdxd::doubly::linked::list< item_t > | Partially lock free doubly linked list |
| Cdxd::__atomic_scalar< sizeof(link *), link * > | |
| Cdxd::atomic< link * > | |
| Cdxd::linked::list< item_t > | Lock free singly linked list |
| Cdxd::doubly::linked::list< doubly::linked::abstract::event > | |
| Cdxd::broadcast | Broadcast signalization of participating linked event items |
| Cdxd::multichannel::stream< channel_t >::clock | Clock domain in the kernel: its sample rate in a buffer the clients map, and the broadcast every registered client is signalled through. references counts the starts, so the domain runs while any client holds it |
| Cdxd::__atomic_scalar< sizeof(long), long > | |
| Cdxd::atomic< long > | |
| Cdxd::__atomic_scalar< sizeof(type_t), type_t > | |
| Cdxd::atomic< type_t * > | Explicitely specify pointer template argument: |
| Cdxd::atomic< type_t > | Atomic operations |
| Cdxd::abstract::event | Abstract::event: base clase to event<dx::user> and event<dx::kernel> to allow mixed user/kernel broadcast signalization |
| Cdxd::event< dx::kernel > | |
| Cdxd::event< dx::user > | |
| Cdxd::stream::umap< stream_t > | |
| Cdxd::stream::umap< stream > | |
| Cdxd::multichannel::stream< channel_t >::umap< stream_t > | Stream user mapping |
| Cdxd::stream::umap< stream_t > | Stream user mapping |
| Cdxd::streaming::clock | One client's registration with a clock domain: its buffer switch bookkeeping, its planar channel buffers per direction, its own cursors in the device's rings and the converters those rings are moved with - everything a client's tick needs, none of it shared |
| Cdxd::adjust< endian_t > | |
| Cdxd::adjust< host > | |
| Cdxd::adjust< swap > | |
| Cdxd::array< vm_t > | Array owned the same way, sized once and freed with the object |
| Cdxd::bus | WDM BUS class |
| Cdxd::bus::desc | Device description for bus class |
| Cdxd::client | User client: one per control open, created by device::client_create() |
| Cdxd::streaming::device< base_t, desc_t, clock_server_t >::client | Control client: the platform's client with this device's streaming state |
| Cdxd::decay< type_t > | No array/function decay - not needed here |
| Cdxd::device | Plain WDM device, one per FDO |
| Cdxd::adapter::device | Per-FDO adapter device: miniport subdevices are created in start() |
| Cdxd::usb::device< base_t > | |
| Cdxd::event< scope_t > | WDK event |
| Cdxd::process | WDK process |
| Cdxd::clock | Kernel-mode periodic software clock, mirroring dx::clock's tick()/run()/halt() shape |
| Cdxd::usb::stream::group< dxd::usb::stream::device > | |
| Cdxd::usb::stream::group< device_t > | USB isoc streaming group: one bus frame aligned tick per USB frame, the one thread running the pipes' request pipelines and moving their data |
| Cdxd::dmus::stream< backend_t > | Dmus::stream: a DirectMusic pin stream over its device's MIDI ring |
| Cdxd::wdm::irp< synchrony_t > | IRP class |
| Cdxd::event< scope > | |
| Cdxd::doubly::linked::event< scope > | Semi lock free doubly linked event item |
| Cdxd::linked::event< scope > | Lock free linked event |
| Cdxd::fourchar_string | Four character code as a string on the stack: the kernel has no allocation free formatting, so the code is unpacked into this and printed as s |
| Cdxd::fw::address | Address range this driver publishes on the bus: a peer writing into it hands its data over through the FIFO entries below |
| Cdxd::fw::phy | |
| Cdxd::kmdf::client | User client |
| Cdxd::kmdf::driver_creator | Dummy WDF interface class |
| Cdxd::linked::item< item_t > | Singly linked list item |
| Cdxd::doubly::linked::item< item_t > | Semi lock free doubly linked list item |
| Cdxd::linked::item< event > | |
| Cdxd::doubly::linked::item< event > | |
| Cdxd::doubly::linked::abstract::event | Semi lock free doubly linked event list |
| Cdxd::doubly::linked::event< scope > | Semi lock free doubly linked event item |
| Cdxd::linked::abstract::event | Lock free linked event list item |
| Cdxd::linked::event< scope > | Lock free linked event |
| Cdxd::linked::item< link > | |
| Cdxd::linked::link | |
| Cdxd::lock< lock_t > | |
| Cdxd::map< scope_t, vm_t > | One mapping of a buffer, into the driver itself or into the client that asked for it - the scope says which address space the address belongs to |
| Cdxd::map< dx::kernel, channel_t > | |
| Cdxd::multichannel::stream< channel_t >::in | Kernel stream mapped client reference counted in channel buffers |
| Cdxd::map< dx::kernel, dx::circular > | |
| Cdxd::stream | Generic kernel stream |
| Cdxd::multichannel::stream< channel_t > | Generic kernel multichannel stream |
| Cdxd::streaming::device< base_t, desc_t, clock_server_t >::ring | Ring one stream streams through, sized by the opening client |
| Cdxd::map< dx::kernel, dx::stream::clock::monitor > | |
| Cdxd::multichannel::stream< channel_t >::clock::monitor | Clock::monitor buffer to be shared with user client mappings to measure jitter and latencies at various levels(IRQ, DPC, ASIO) |
| Cdxd::map< dx::kernel, unsigned int > | |
| Cdxd::multichannel::stream< channel_t >::clock | Clock domain in the kernel: its sample rate in a buffer the clients map, and the broadcast every registered client is signalled through. references counts the starts, so the domain runs while any client holds it |
| Cdxd::map< dx::user, dx::circular > | |
| Cdxd::stream::umap< stream_t > | |
| Cdxd::stream::umap< stream > | |
| Cdxd::stream::umap< stream_t > | Stream user mapping |
| Cdxd::memory< scope_t, io_memory_descriptor_t > | Virtual DriverKit memory description |
| Cdxd::buffer< dx::user > | |
| Cdxd::multichannel::stream< channel_t >::clock | Clock domain in the kernel: its sample rate in a buffer the clients map, and the broadcast every registered client is signalled through. references counts the starts, so the domain runs while any client holds it |
| Cdxd::multichannel::stream< channel_t >::clock::monitor | Clock::monitor buffer to be shared with user client mappings to measure jitter and latencies at various levels(IRQ, DPC, ASIO) |
| Cdxd::multichannel::stream< channel_t >::in | Kernel stream mapped client reference counted in channel buffers |
| Cdxd::multichannel::stream< channel_t >::umap< stream_t >::channel | One channel's double buffer, mapped into the kernel and into the client - the planar buffers a kernel streaming client exchanges instead of the ring |
| Cdxd::stream | Generic kernel stream |
| Cdxd::buffer< scope_t, limit_t, alignment_t, contigous_t > | DriverKit memory buffer w/o alignment and boundary requirements |
| Cdxd::memory< dx::kernel, ::IOBufferMemoryDescriptor > | |
| Cdxd::buffer< dx::user > | |
| Cdxd::buffer< scope_t, limit_t, alignment_t, contigous_t > | DriverKit memory buffer w/o alignment and boundary requirements |
| Cdxd::mutex | Mutex |
| Cdxd::promoted< uint32_t, dxd::streaming::samplerate_server< dxd::streaming::device > > | |
| Cdxd::promoted< uint32_t, dxd::streaming::iosize_server< dxd::streaming::device > > | |
| Cdxd::promoted< uint32_t, dxd::streaming::offset_server< dxd::streaming::device > > | |
| Cdxd::promoted< uint32_t, clock_server_t > | |
| Cdxd::promoted< uint32_t, dxd::streaming::opened_server< dxd::streaming::device > > | |
| Cdxd::promoted< dx::stream::format, server > | |
| Cdxd::promoted< value_t, server_t > | Kernel-mode promoted value, mirroring dx::promoted's server/commit/notify shape |
| Cdxd::open< object_t, service_t > | |
| Cdxd::pci::dbg | |
| Cdxd::pci::resources | PCI windows this device was assigned, mapped for the driver's life: each one its virtual and physical address, its length and its mask |
| Cdxd::pci::resources::memory | |
| Cdxd::pci::scatter_gather< limit_t, alignment_t, page_size_t > | |
| Cdxd::port | Miniport creation helper |
| Cdxd::port::reference< object_t > | COM reference held for the object's life - the PortCls interfaces are reference counted and a miniport that keeps one raw outlives it |
| Cdxd::portcls::device< streaming_device_t >::stream::stream_desc | |
| Cdxd::portcls::miniport< dxd::portcls::device::stream::stream_desc > | |
| Cdxd::portcls::wave< dxd::portcls::device::stream::stream_desc > | |
| Cdxd::wavert::miniport< dxd::portcls::device::stream > | |
| Cdxd::reference< object_t > | Reference holder for object based reference counter |
| Cdxd::referenced | Reference counting base class |
| Cdxd::stream::umap< stream_t > | |
| Cdxd::stream::umap< stream > | |
| Cdxd::stream | Generic kernel stream |
| Cdxd::stream::umap< stream_t > | Stream user mapping |
| Cdxd::remove_reference< type_t > | |
| Cdxd::remove_reference< type_t & > | |
| Cdxd::remove_reference< type_t && > | |
| Cdxd::scoped< object_t > | Object owned for the scope, freed at its end and at every assignment - the kernel's own unique_ptr, with the conversions an OS call's out parameter needs |
| Cdxd::scoped<::URB > | |
| Cdxd::spinlock | WDK spinlock |
| Cdxd::broadcast | Broadcast signalization of participating linked event items |
| Cdxd::multichannel::stream< channel_t > | Generic kernel multichannel stream |
| Cdxd::stream::opened< packetizer_t > | Generic streaming interface description |
| Cdxd::streaming::channels< channel_t > | One client's planar channel double buffers for one pin |
| Cdxd::streaming::converter | |
| Cdxd::streaming::domain | Clock domain every client rides on: the DAW clock |
| Cdxd::streaming::entry< sample_t > | |
| Cdxd::streaming::iosize_server< device_t > | Buffer size a client asks for: aligned to the clock's granularity and the desc's limits, and left where it stands while the device streams or a stream is open |
| Cdxd::streaming::offset_server< device_t > | Client side safety offset in clock ticks: it is committed and then handed to the domain's registered clients as a margin in bytes, which their cursors take at the next seat |
| Cdxd::streaming::opened_server< device_t > | Count of open streams, committed as it stands - the flag every setting below refuses a change against |
| Cdxd::streaming::samplerate_server< device_t > | Server functors of device's promoted values |
| Cdxd::streaming::switching | One client's share of a clock domain: its buffer switch event and iosize, and the channel buffers that switch |
| Cdxd::streaming::client< device_t > | Streaming state of one control client |
| Cdxd::streaming::device< base_t, desc_t, clock_server_t >::client | Control client: the platform's client with this device's streaming state |
| Cdxd::string< char_t, length > | Formatted string of a fixed length on the stack: the kernel has no std::string, and a driver's names and log lines need no allocation |
| Cdxd::usb::stream::clock_server< base_t, desc_t > | Runs the group while streams are started, from within started's promoted server |
| Cdxd::wavert::stream< stream_desc_t >::row< ext_t >::entry< circular_t > | |
| Cdxd::wdm::device_interface | Enabled device interface: registered and enabled by initialize(), disabled by conclude() - or on destruction, when no remove came |
| Cdxd::wdm::file | File class |
| Cdxd::wdm::registry | Registry key in the kernel: the driver's parameters and, for the license, the machine's certificate store - read at PASSIVE_LEVEL alone |
| Cdxd::adapter | PortCls adapter driver |
| Cdxd::kmdf::device | KMDF device: the framework's own PnP and power callbacks routed to this class's virtuals, its clients created per file object. The WDM counterpart, which the PortCls path takes, lives in dxd itself |
| Cdxd::fw | WDK: FireWire device |
| Cdxd::pci | PCI device |
| Cdxd::ppc | PPC device |
| Cdxd::wdm::workitem | WDM workitem helper |
| Cdxd::wmi | WMI data block's instances, read as a consumer (IoWMIOpenBlock, IoWMIQueryAllData) at PASSIVE_LEVEL |
| Cgroup_t | |
| Cdx::stream::engine::group< group_t< device_t >, dx::stream::pin< device_t, circular_t >, io_t, circular_t > | |
| Cdx::stream::engine::group< group_t, _pin_t, _io_t, circular_t > | Consumer twin of a bus's producing group: it owns this group's pins, its io buffers and ring positions, and runs the consumer data path on the group's own clock - one thread per group, so every group of every device streams in parallel |
| CGUID | |
| Cdx::guid | ::GUID with the arithmetic Windows leaves out: constructed from its parts or its string, ordered so it can be a map key, printed as its string |
| Cdx::proxy::driver< device_t >::setup | Device information set of one interface class: what enumerates the devices present and names their paths |
| Cdxd::guid | |
| Cdxd::portcls::miniport< typename stream_t::stream_desc > | |
| Cdxd::portcls::wave< typename stream_t::stream_desc > | |
| Cdxd::portcls::miniport< stream_t::stream_desc > | |
| Cdxd::portcls::wave< stream_t::stream_desc > | |
| Cdxd::wavert::miniport< stream_t > | Wavert::miniport |
| Cdxd::dmus::miniport< stream_t > | Dmus::miniport: one DirectMusic port per MIDI pin, its streams over the backend's ring |
| Cdxd::portcls::miniport< dxd::portcls::device::stream::stream_desc > | |
| Cdxd::portcls::miniport< stream_desc_t > | Portcls::miniport |
| Cdxd::portcls::wave< stream_desc_t > | Wave filter description shared by the wave port models |
| CIASIO | |
| Cdx::asio::driver< device_t, driver_t > | |
| CIMiniportWaveRT | |
| Cdxd::wavert::miniport< dxd::portcls::device::stream > | |
| Cdxd::wavert::miniport< stream_t > | Wavert::miniport |
| CIMiniportWaveRTStreamNotification | |
| Cdxd::wavert::stream< struct desc_t::stream > | |
| Cdxd::wavert::stream< stream_desc_t > | Wavert::stream: cyclic WaveRT buffer with client notifications |
| CIMMNotificationClient | |
| Cdx::wasapi::client::driver< device_t > | WASAPI client driver interface class |
| CIMXF | |
| Cdxd::dmus::stream< backend_t > | Dmus::stream: a DirectMusic pin stream over its device's MIDI ring |
| Cinstance_t | |
| Cdx::pipe< rcv_t >::server< instance_t, arg_t >::instance | One accepted client connection, on a read thread of its own |
| Cio::iterator::service | Iteration state of a range-for over an IOKit iterator: the service in hand and the iterator handing out the next |
| Cio::power | System power notification receiver to get notifications: inherit and connect to runloop |
| Cio::reference< io_object_t > | IOKit object's retain and release, the counterpart of cf::reference for the io_object_t family |
| Cio::reference<::io_iterator_t > | |
| Cio::iterator | Internally used service iterator providing RAII for io_service references - returned when iterating |
| Cio::reference<::io_registry_entry_t > | |
| Cio::registry | MacOS IORegistry access |
| Cdx::service::device< super_device_t > | |
| Cdx::service::device< dx::preference > | |
| Cdx::usb::platform::device< preference_t > | |
| Cdx::usb::platform::device< dx::preference > | |
| Cdx::serial | Serial interface |
| Cdx::service::device< preference_t > | Registry entry behind a device: its class, the bundle that provides it and every property it publishes |
| Cdx::usb::platform::device< preference_t > | Platform half of a USB device: the IOKit registry entry, the IOUSBLib device interface and the open count over it - what dx::usb::device puts its descriptors and interfaces on |
| Cjuce::Button::Listener | |
| Cdx::gui::bar | Row of buttons laid out left to right, each sized to its text, with one listener for all of them |
| Cdx::gui::cpl< driver_t >::window::component::driver | Device tree itself: it is the driver, so arrivals and removals reach it directly, and it is the document - the tree's settings are saved and restored as a file |
| Cjuce::ComboBox | |
| Cdx::gui::box< item_t > | |
| Cdx::gui::box< int > | |
| Cdx::gui::power2< item_t > | Drop down of powers of two within a range - a buffer size or a channel count, with the values between the powers offered as well where asked for |
| Cdx::gui::box< item_t > | Drop down whose items are either ids or their text, depending on what the edited value is |
| Cdx::gui::direction< device_t > | Stream's direction: every direction to choose from where the device has an editable desc, the current one alone where it has not |
| Cjuce::ComboBox::Listener | |
| Cdx::gui::box< item_t > | |
| Cdx::gui::box< int > | |
| Cdx::gui::box< item_t > | Drop down whose items are either ids or their text, depending on what the edited value is |
| Cjuce::Component | |
| Cdx::gui::aggregate< image, label, button > | |
| Cdx::gui::aggregate< label, direction< device >, label, power2< juce::String > > | |
| Cdx::gui::aggregate< label, samplerate > | |
| Cdx::gui::aggregate< label, power2< juce::String > > | |
| Cdx::gui::aggregate< component_t > | Several widgets in one row, each at its own width - what a tree item's line is built from |
| Cdx::gui::bar | Row of buttons laid out left to right, each sized to its text, with one listener for all of them |
| Cdx::gui::cpl< driver_t >::window::component | |
| Cjuce::FileBasedDocument | |
| Cdx::gui::cpl< driver_t >::window::component::driver | Device tree itself: it is the driver, so arrivals and removals reach it directly, and it is the document - the tree's settings are saved and restored as a file |
| Cjuce::ImageComponent | |
| Cdx::gui::image | Image from a file or a resource, scaled into its place |
| Cjuce::JUCEApplication | |
| Cdx::gui::cpl< driver_t > | Control panel application: one window holding the driver's device tree, every device a branch of it. The driver itself is a base of the tree view below, so a device arriving on the bus adds its line - marshalled onto the message thread |
| Cjuce::Label | |
| Cdx::gui::box< item_t >::label | Box::label Corrects JUCE awkward positioning and size of the juce::ComboBox editor. This is attached by the cpl::looknfeel class |
| Cdx::gui::label | Text field, editable where a listener is given |
| Cjuce::MenuBarModel | |
| Cdx::gui::cpl< driver_t >::window::component::driver | Device tree itself: it is the driver, so arrivals and removals reach it directly, and it is the document - the tree's settings are saved and restored as a file |
| Cjuce::RecentlyOpenedFilesList | |
| Cdx::gui::cpl< driver_t >::window::component::driver | Device tree itself: it is the driver, so arrivals and removals reach it directly, and it is the document - the tree's settings are saved and restored as a file |
| Cjuce::TextButton | |
| Cdx::gui::button | Button, toggling where a listener is given |
| Cjuce::ToggleButton | |
| Cdx::gui::checkbox | Check box for one boolean of the desc |
| Cjuce::TreeView | |
| Cdx::gui::cpl< driver_t >::window::component::driver | Device tree itself: it is the driver, so arrivals and removals reach it directly, and it is the document - the tree's settings are saved and restored as a file |
| Cjuce::TreeViewItem | |
| Cdx::gui::item< component > | |
| Cdx::gui::item< label > | |
| Cdx::gui::device< device_t >::stream< desc_t >::pin | Dx::gui::device::stream::pin Detail row of a single stream pin: name, direction/channels/index, sample format (audio/MIDI, resolution, scalar/float, byte size, endian, alignment), latency and encoder role - grouped into the same dense rows juce uses |
| Cdx::gui::item< checkbox > | |
| Cdx::gui::device< device_t >::clients | Who has the device open, one line per client, following the device's promoted client map |
| Cdx::gui::item< aggregate< image, label, button > > | |
| Cdx::gui::device< device_t > | Device as a branch of the panel's tree: its name and icon on the line, its streams, clock, buffer size and clients below - every widget bound to the desc, which the device writes back when one of them changes |
| Cdx::gui::item< aggregate< label, samplerate > > | |
| Cdx::gui::item< aggregate< label, power2< juce::String > > > | |
| Cdx::gui::device< device_t >::iosize< desc_t > | Buffer size in samples, offered between the desc's limits and aligned to the clock's interval |
| Cdx::gui::item< aggregate< label, direction< device >, label, power2< juce::String > > > | |
| Cdx::gui::device< device_t >::stream< desc_t > | One stream's line: its name, its direction and its channel count, with a line per pin below |
| Cdx::gui::item< component_t > | One line of the device tree: its widget is created when the line becomes visible and dropped with it |
| Cdx::gui::device< device_t >::clients | Who has the device open, one line per client, following the device's promoted client map |
| Cdx::gui::device< device_t >::clock< desc_t > | Clock domain's branch: the sample rate to choose from what the desc offers, and the rates themselves editable where the device allows it |
| Cdx::gui::device< device_t >::clock< desc_t > | Clock domain's branch: the sample rate to choose from what the desc offers, and the rates themselves editable where the device allows it |
| Cdx::gui::device< device_t >::iosize< desc_t > | Buffer size in samples, offered between the desc's limits and aligned to the clock's interval |
| Cdx::gui::device< device_t >::stream< desc_t > | One stream's line: its name, its direction and its channel count, with a line per pin below |
| Cdx::gui::device< device_t >::stream< desc_t >::pin | Dx::gui::device::stream::pin Detail row of a single stream pin: name, direction/channels/index, sample format (audio/MIDI, resolution, scalar/float, byte size, endian, alignment), latency and encoder role - grouped into the same dense rows juce uses |
| CKSDATARANGE_AUDIO | |
| Cdxd::range::audio | KSDATARANGE_AUDIO constructor |
| CMIDIDriverInterface | |
| Cdx::coremidi::server::plugin< stream_pin_t, device_t, driver_t > | CoreMIDI plugin |
| Cobject_t | |
| Cdx::stream::control< object_t > | Promoted-counter refcount: start counts, started derives (start!= 0); run_hook fires on the 0->nonzero edge, halt_hook on the nonzero->0 edge, flush_hook before every effective decrement (including one that doesn't reach zero). One central mechanism, reused by inheritance wherever a level still needs its own share-count (pin's per-client attribution; stream, which also owns the ring reset in its own run_hook; group, whose hooks are its own dx::clock run()/halt()) - hooks are set by the derived class's own constructor body, exactly how dx::stream::group already wired its hand-rolled start/streaming pair |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference_t > >, desc_t, stream_t > | |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference_t > >, desc_t, stream_t, group_t > | |
| Cdx::stream::group< device_t, dx::source< dx::shared::event > > | |
| Cdx::stream::group< device_t, clock::source< device_t > > | |
| Cdx::stream::group< device_t, dx::timer<> > | |
| Cdx::stream::group< device_t, dx::free_run< dx::event<> > > | |
| Cdx::stream::group< device_t, dx::free_run< dx::shared::event > > | |
| Cdx::stream::group< device_t, dx::source< dx::event< dx::kernel > > > | |
| COVERLAPPED | |
| Cdx::overlapped | Overlapped operation with the event it completes on, and the wait for its result |
| Cpin_t::device_t | |
| Cdx::coreaudio::server::device< pin_t > | CoreAudio server streaming device |
| CPROCESS_INFORMATION | |
| Cdx::process | Child process with its handles, started and waited for; mmcss inside it is what a streaming thread of this process registers with the multimedia scheduler as |
| Cproxy::driver< device< stream_pin_t > > | |
| Cdx::coremidi::server::plugin< stream_pin_t, device_t, driver_t > | CoreMIDI plugin |
| Cpublic::CUnknown | |
| Cdxd::dmus::miniport< stream_t > | Dmus::miniport: one DirectMusic port per MIDI pin, its streams over the backend's ring |
| Cpublic::IMiniportDMus | |
| Cdxd::dmus::miniport< stream_t > | Dmus::miniport: one DirectMusic port per MIDI pin, its streams over the backend's ring |
| Cpublic::KEVENT | |
| Cdxd::event< dx::kernel > | |
| Cpublic::PCPIN_DESCRIPTOR | |
| Cdxd::portcls::pin | One pin of a WaveRT miniport as PortCls wants it: its data ranges, its category and flow, and the instance counts the system may open of it |
| Crequest_t | |
| Cdx::service::client::sync< request_t > | One request made synchronous: it waits for the answer carrying its own id, and a connection that drops meanwhile ends the wait rather than hanging it |
| Csc::_preference::lock | System configuration store's write lock, held for the scope - a store several processes write needs it around a change |
| Csec::code< item_t > | |
| CSECURITY_ATTRIBUTES | |
| Cdx::security | Windows security descriptor: allows non-privileged access |
| CSECURITY_DESCRIPTOR | |
| Cdx::security | Windows security descriptor: allows non-privileged access |
| CSERVICE_NOTIFYA | |
| Cdx::service::manager::promoted | Value the control manager notifies about, on a thread of its own: the notification is an alertable wait, so the callback runs on that thread and commits what it read. A service marked for deletion ends the watch |
| CSERVICE_STATUS | |
| Cdx::service::app | Service::app - Windows Service Windows services are essentially just a type of container for which startup conditions can be defined. The service interface does not support any additional communication. Communication between client and service are usually be implemented using Windows named pipes |
| Csource_t | |
| Cdx::clock< source_t > | |
| Cdx::stream::control< dx::clock< source_t > > | |
| Cdx::stream::group< device_t, source_t > | |
| CSTARTUPINFOA | |
| Cdx::process | Child process with its handles, started and waited for; mmcss inside it is what a streaming thread of this process registers with the multimedia scheduler as |
| Cstd::basic_string< Char > | STL class |
| Cstd::string | STL class |
| Cdx::coreaudio::_device< desc_t, preference_t, stream_t, group_t >::icon | Device's icon as a file system path; the HAL states it as a URL |
| Cdx::gui::file | Given vendor/product-relative path, in the platform's standard app data location |
| Cdx::redirect::eventlog< type_t > | Standard stream redirected into the Windows event log, one entry per line: what a service or any process without a console logs through, since nobody reads its stdout |
| Cdx::redirect::syslog | Redirect stdout to syslog |
| Cdx::usb::platform::interface | Platform half of an interface: the IOUSBLib interface plugin, its exclusive open and the run loop its asynchronous completions arrive on |
| Cio::registry | MacOS IORegistry access |
| Cstd::bool_constant | |
| Cdx::key_value_tree_enabled< tree_t, value_t, std::void_t< decltype(tree_t::template enabled< value_t >())> > | |
| Cdx::is_string_container< type_t, false >::probe< t, std::void_t< typename t::value_type, decltype(t(std::declval< std::set< std::string >::iterator >(), std::declval< std::set< std::string >::iterator >()))> > | |
| Cdx::key_value_tree_enabled< tree_t, value_t, typename > | |
| Cdx::key_value_tree_enabled< tree_t, value_t, std::void_t< decltype(tree_t::template enabled< value_t >())> > | |
| Cstd::condition_variable | |
| Cdx::event< user > | Process local event over a condition variable; dx::event<kernel> is the platform's own, waitable together with an OS handle |
| Cstd::deque< T > | STL class |
| Cdx::coreaudio::property::listen | Coreaudio::property::listen |
| Cdx::coremidi::property::listen | Coremidi::property::listen |
| Cstd::enable_shared_from_this | |
| Cdx::device<::io_service_t, preference_t > | |
| Cdx::device< std::string, preference_t > | |
| Cdx::device< dx::guid, preference > | |
| Cdx::device<::AudioObjectID, cf::preference > | |
| Cdx::device<::MIDIDeviceRef, cf::preference > | |
| Cdx::device< std::string, preference > | |
| Cdx::device<> | |
| Cdx::device<::io_service_t, dx::preference > | |
| Cdx::device< std::string, dx::preference > | |
| Cdx::key_value_tree< _preference > | |
| Cdx::key_value_tree< registry > | |
| Cdx::device< id_t, preference_t > | Abstract commom base device interface class |
| Cdx::key_value_tree< tree_t > | Hierarchical key/value navigation over a flat persistent store |
| Cdx::pipe< rcv_t >::server< instance_t, arg_t >::instance | One accepted client connection, on a read thread of its own |
| Cstd::exception | STL class |
| Cstd::runtime_error | STL class |
| Cdx::exception | Throw's whole diagnostic: the OS result, where it was raised (frame, file, line), the thread and the moment, a formatted comment and the exception it grew out of. Each frame on the way out wraps the one below into a new exception of its own - dx_catchall and friends do nothing else - so previous is the chain down to the origin, deep copied and owned by the wrapper; dx::trace::unfold prints it. The constructor overloads below are one signature per combination of the optional leading arguments (previous, function, error, what) ahead of the mandatory frame/file/line, with and without the printf-style comment |
| Cstd::false_type | |
| Cdx::is_dx_iterator< type_t, std::void_t< typename type_t::dx_iterator_tag > > | |
| Cdx::is_initializer_list< std::initializer_list< type_t > > | |
| Cdx::is_smart_pointer< std::shared_ptr< type_t > > | |
| Cdx::is_smart_pointer< std::unique_ptr< type_t, deleter_t > > | |
| Cdx::is_smart_pointer< std::weak_ptr< type_t > > | |
| Cdx::is_string_container< type_t, false > | |
| Cdx::is_string_container< type_t, false >::probe< t, std::void_t< typename t::value_type, decltype(t(std::declval< std::set< std::string >::iterator >(), std::declval< std::set< std::string >::iterator >()))> > | |
| Cdx::promoting< preference_t, std::void_t< decltype(preference_t::listen)> > | |
| Cdx::test::device< super_device_t, _engine_t >::has_license< type_t, decltype((void) type_t::license, void())> | |
| Cdx::is_dx_iterator< type_t, typename > | |
| Cdx::is_initializer_list< type_t > | |
| Cdx::is_smart_pointer< type_t > | |
| Cdx::is_string_container< type_t, bool > | |
| Cdx::is_string_container< type_t, false >::probe< t, typename > | |
| Cdx::promoting< preference_t, typename > | Promoted::preference with default and optional alignment function |
| Cdx::test::device< super_device_t, _engine_t >::has_license< type_t, typename > | |
| Cstd::ios_base | STL class |
| Cstd::basic_ios< Char > | STL class |
| Cstd::basic_ostream< Char > | STL class |
| Cstd::ostream | STL class |
| Cdx::redirect::eventlog< type_t > | Standard stream redirected into the Windows event log, one entry per line: what a service or any process without a console logs through, since nobody reads its stdout |
| Cdx::redirect::syslog | Redirect stdout to syslog |
| Cstd::jthread | STL class |
| Cdx::pipe< request > | |
| Cdx::template server< user_client, std::weak_ptr< device > > | |
| Cdx::template server< request > | |
| Cdx::pipe< dx::service::request< service::stream::data< desc > > > | |
| Cdx::pipe< dx::service::request< service::stream::data< desc_t > > > | |
| Cdx::pipe< dx::service::request< service::stream::data< typename device_t::desc_t > > > | |
| Cdx::pipe< request_t > | |
| Cdx::pipe< rcv_t > | Pipe - Windows named pipes A dx::pipe is a bidirection, multi-client, multi-threaded communication channel between a pipe client and a pipe server. Both pipe sides feature a dedicated read thread to receive data from the opposite side notifiying installable listener std::functions. On the service side, a pipe server is instantiated for each pipe client connection. Until a new client connects, the pipe::server::instance remains waiting in pipe::server::instance::connect within its dedicated pipe read thread. If a client disconnects the pipe::server::instance terminates its read thread and is joined and released by the next pipe::server::run() or pipe::server::stop(). The pipe::server::instance super class can be template-parameterized to allow mimicking user client behaviour. Windows arbitrarily serializes operations on synchronous pipe handles, limiting it's named pipe concurrent synchronous operation capabilities to exactly one synchronous pipe per process (i.e. exactly one per process), effectively forcing both the pipe::server and the pipe client to be implemented using asynchronous OVERLAPPED I/O — introducing a whole host of unnecessary pitfalls and awkward behaviors. However, the MSDN documentation here apparently describes a different piece of software. Though dx::pipes can be used for any communication between user space software its purpose is to allow Windows service communication. A service itself runs with elevated privileges, whereas the clients typically run in the normal user context. Therefore, the pipe servers have defined their default ACLs for non-privileged access |
| Cstd::list< T > | STL class |
| Cdx::daemon::captures | Captures of every registry entry the matching dictionaries name, held for the scope - ahead of a host driver releasing its devices, whose own capture then is not the last |
| Cstd::map< K, T > | STL class |
| Cdx::listeners< std::function< void(const value_t &)> > | |
| Cdx::listeners< std::function< void(const double &)> > | |
| Cdx::listeners< std::function< void(const rcv_t &)> > | |
| Cdx::listeners< std::function< void(class dx::pipe::server::instance &, const rcv_t &)> > | |
| Cdx::listeners< std::function< void(const request_t &)> > | |
| Cdx::listeners< std::function< void(const uint32_t &)> > | |
| Cdx::map::driver< device_t > | |
| Cdx::map::driver< device_t, dx::apartment< device_t > > | |
| Cdx::map::driver< device<> > | |
| Cdx::device< id_t, preference_t >::client_map | Who has the device open: process id to bundle identifier and whether that client is running it - the HAL hands it over as a CF dictionary, every other platform keeps the map itself |
| Cdx::listeners< listener_t > | Internal helper to map single listener into listerners map |
| Cdx::map::driver< _device_t, holder_t > | Device mapping driver interface class |
| Cstd::mutex | STL class |
| Cdx::pipe< request > | |
| Cdx::template server< user_client, std::weak_ptr< device > > | |
| Cdx::template server< request > | |
| Cdx::pipe< dx::service::request< service::stream::data< desc > > > | |
| Cdx::pipe< dx::service::request< service::stream::data< desc_t > > > | |
| Cdx::pipe< dx::service::request< service::stream::data< typename device_t::desc_t > > > | |
| Cdx::pipe< request_t > | |
| Cdx::promoted< value_t > | |
| Cdx::coreaudio::promoted::property< value_t, coreaudio_value_t, settable > | Coreaudio::promoted::property |
| Cdx::coremidi::promoted::property< value_t, coremidi_value_t, settable > | Coremidi::promoted::property |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t >::promoted< value_t, proxy_value_t, _settable > | Dx::proxy::stream::device::promoted with device::preference |
| Cdx::service::client::promoted< value_t, request_t, server_value_t > | Host's promoted mirrored, born with the pipe as its server (dx_value.h: no promoted is born empty): a wish (assignment) or a question (first access) goes to the host as data, the promoted commits the host's answer under its own lock; a message outside a request is the host's broadcast, committed on the pipe's thread under the promoted's lock |
| Cdx::template preference< decltype(super_device_t::preference)> | |
| Cdx::template preference< decltype(device_t::preference)> | |
| Cdx::promoted<::DWORD > | |
| Cdx::service::manager::promoted | Value the control manager notifies about, on a thread of its own: the notification is an alertable wait, so the callback runs on that thread and commits what it read. A service marked for deletion ends the watch |
| Cdx::promoted< dx::log > | |
| Cdx::service::client::promoted< dx::log, dx::service::request< service::stream::data< typename device_t::desc_t > >, uint32_t > | |
| Cdx::promoted< os_result > | |
| Cdx::pipe< rcv_t >::status | Every pipe operation's result assigned here: the states that mean the peer is gone end the read thread, ok marks the connection up, the pending ones pass, and anything else is a fault |
| Cdx::promoted< uint32_t > | |
| Cdx::coreaudio::promoted::property< uint32_t > | |
| Cdx::coreaudio::_device< desc_t, preference_t, stream_t, group_t >::clocksource | Clock source as the HAL models it: a selector control object beside the device, its current item an ::AudioObjectID. The promoted carries the index into the available items instead, which is what a desc's clock settings are numbered by |
| Cdx::coreaudio::promoted::property< uint32_t, ::CFNumberRef > | |
| Cdx::coreaudio::device< desc_t, preference_t, stream_t, group_t, _hosted >::mirror | Hosted device's transport settings' mirror (dx::stream::settings): a promoted property of the pod, born with the counterpart's property, the setting mapped to its selector - as service::client::device::mirror over the pipe |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t >::promoted< uint32_t > | |
| Cdx::service::client::promoted< uint32_t, request > | |
| Cdx::service::client::_device< desc_t, preference_t, stream_t, group_t >::mirror | Transport settings' mirror (dx::stream::settings, a hosted device's): born with the pipe, the setting mapped to the service's request |
| Cdx::service::client::promoted< uint32_t, dx::service::request< service::stream::data< desc > > > | |
| Cdx::service::client::promoted< uint32_t, dx::service::request< service::stream::data< desc_t > > > | |
| Cdx::promoted< structdesc_t::stream * > | |
| Cdx::promoted< std::string > | |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t >::promoted< std::string > | |
| Cdx::promoted< desc > | |
| Cdx::service::client::promoted< desc, dx::service::request< service::stream::data< desc > > > | |
| Cdx::promoted< typename super::client_map > | |
| Cdx::coreaudio::promoted::property< typename super::client_map, typename super::client_map::value_t, false > | |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t >::promoted< typename super::client_map, typename super::client_map::value_t > | |
| Cdx::promoted< ::Float64 > | |
| Cdx::coreaudio::promoted::property<::Float64 > | |
| Cdx::promoted< dx::coreaudio::_device::icon > | |
| Cdx::coreaudio::promoted::property< dx::coreaudio::_device::icon, ::CFURLRef, false > | |
| Cdx::promoted< bool > | |
| Cdx::pipe< rcv_t >::connection | Whether this pipe stands: an event to wait on and a promoted to follow - dx::pipe::status derives it from what the last operation answered |
| Cdx::promoted< dx::stream::format > | |
| Cdx::promoted< dx::stream::desc<> > | |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t >::promoted< dx::stream::desc<>, typename dx::stream::desc<>::value_t > | |
| Cdx::promoted< desc_t > | |
| Cdx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t >::promoted< desc_t, typename desc_t::value_t > | |
| Cdx::service::client::promoted< desc_t, dx::service::request< service::stream::data< desc_t > > > | |
| Cdx::promoted< ::AudioObjectID > | |
| Cdx::coreaudio::promoted::property<::AudioObjectID > | |
| Cdx::promoted< dx::virtuel::stream::desc > | |
| Cdx::coreaudio::promoted::property< dx::virtuel::stream::desc, ::CFDictionaryRef > | |
| Cdx::event< user > | Process local event over a condition variable; dx::event<kernel> is the platform's own, waitable together with an OS handle |
| Cdx::pipe< rcv_t > | Pipe - Windows named pipes A dx::pipe is a bidirection, multi-client, multi-threaded communication channel between a pipe client and a pipe server. Both pipe sides feature a dedicated read thread to receive data from the opposite side notifiying installable listener std::functions. On the service side, a pipe server is instantiated for each pipe client connection. Until a new client connects, the pipe::server::instance remains waiting in pipe::server::instance::connect within its dedicated pipe read thread. If a client disconnects the pipe::server::instance terminates its read thread and is joined and released by the next pipe::server::run() or pipe::server::stop(). The pipe::server::instance super class can be template-parameterized to allow mimicking user client behaviour. Windows arbitrarily serializes operations on synchronous pipe handles, limiting it's named pipe concurrent synchronous operation capabilities to exactly one synchronous pipe per process (i.e. exactly one per process), effectively forcing both the pipe::server and the pipe client to be implemented using asynchronous OVERLAPPED I/O — introducing a whole host of unnecessary pitfalls and awkward behaviors. However, the MSDN documentation here apparently describes a different piece of software. Though dx::pipes can be used for any communication between user space software its purpose is to allow Windows service communication. A service itself runs with elevated privileges, whereas the clients typically run in the normal user context. Therefore, the pipe servers have defined their default ACLs for non-privileged access |
| Cdx::promoted< _value_t > | Promoted value |
| Cstd::pair< T1, T2 > | STL class |
| Cdx::gui::component_size_pair< component_t > | Widget with the width its content needs: negative takes it from the right, zero takes what is left |
| Cstd::recursive_mutex | STL class |
| Cdx::driver< device_id_t, decltype(device_t::preference)> | |
| Cdx::driver< decltype(id), preference > | |
| Cdx::driver< decltype(id), cf::preference > | |
| Cdx::driver< decltype(_device_t::id), decltype(_device_t::preference)> | |
| Cdx::driver< decltype(device<>::id), decltype(device<>::preference)> | |
| Cdx::driver< decltype(id), dx::preference > | |
| Cdx::stream::device< dx::proxy::device< preference_t >, desc_t, stream_t, group_t > | |
| Cdx::stream::device< dx::device<::AudioObjectID, preference_t >, desc_t, stream_t, group_t > | |
| Cdx::stream::device< dx::device<::MIDIDeviceRef, preference_t >, desc_t, stream_t > | |
| Cdx::stream::device< usb::device< preference_t >, desc_t, stream_t, group_t > | |
| Cdx::stream::device< dx::device< std::string, preference_t >, desc_t, stream_t, group_t > | |
| Cdx::stream::device< dx::device< dx::guid, preference_t >, desc_t, stream_t, group_t > | |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference_t > >, desc_t, stream_t > | |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference_t > >, desc_t, stream_t, group_t > | |
| Cdx::stream::device< dx::device< dx::guid, preference >, desc, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::stream::device< dx::device<::AudioObjectID, cf::preference >, dx::virtuel::stream::desc, dx::stream::stream< device< dx::virtuel::stream::desc, cf::preference, dx::stream::stream, group, false > >, group< device< dx::virtuel::stream::desc, cf::preference, dx::stream::stream, group, false > > > | |
| Cdx::stream::device< dx::device<::AudioObjectID, cf::preference >, dx::virtuel::stream::desc, stream< device< dx::virtuel::stream::desc, cf::preference, stream, group, _hosted > >, group< device< dx::virtuel::stream::desc, cf::preference, stream, group, _hosted > > > | |
| Cdx::stream::device< dx::device<::AudioObjectID, cf::preference >, dx::virtuel::stream::desc, stream< device< dx::virtuel::stream::desc, cf::preference, stream, coreaudio::group, false > >, coreaudio::group< device< dx::virtuel::stream::desc, cf::preference, stream, coreaudio::group, false > > > | |
| Cdx::stream::device< dx::device<::MIDIDeviceRef, cf::preference >, desc, stream< device< desc, cf::preference, stream > > > | |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > > > | |
| Cdx::stream::device< desc, preference, stream > | |
| Cdx::stream::device< dx::proxy::device< dx::preference >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream, group > >, group< device< dx::stream::desc<>, dx::preference, stream, group > > > | |
| Cdx::stream::device< dx::device< std::string, preference >, desc, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::stream::device<> | |
| Cdx::stream::device< usb::device< dx::preference >, desc_t, pipe< device< desc_t, dx::preference, pipe, group > >, group< device< desc_t, dx::preference, pipe, group > > > | |
| Cdx::stream::device< dx::device< std::string, dx::preference >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream, group > >, group< device< desc, dx::preference, dx::stream::shared::stream, group > > > | |
| Cdx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > > | |
| Cdx::driver< device_id_t, preference_t > | |
| Cdx::stream::device< super_device_t, _desc_t, _stream_t, _group_t > | Streaming device: its desc, the settings the desc defaults, the streams of that desc grouped by dx::stream::group and the clock those groups run on. Every bus device derives from this one and supplies what its transport does differently - the settings' servers (a rate written to the hardware), the group's tick, the streams' rings. The settings themselves are promoted preferences here, so a wish survives the device and is asked of the transport once the device is there |
| Cstd::shared_ptr< T > | STL class |
| Cdx::asio::driver< device_t, driver_t > | |
| Cstd::streambuf | |
| Cdx::redirect::eventlog< type_t > | Standard stream redirected into the Windows event log, one entry per line: what a service or any process without a console logs through, since nobody reads its stdout |
| Cdx::redirect::indent::streambuf | Stream's distributor: over the stream's own buffer while a sink is joined, the stream's own restored once the last one left - every write to each sink, a line's start prefixed by the writing thread's indent, a line sink given each line whole. Every distributor joins the stream's own buffer: the stream stays where it was, indented - a sink wanting the stream for itself leaves it (leave(*origin)). std::cout, std::clog and std::cerr get theirs at their first indent level or sink. A buffer joined twice is written once. Joining and leaving take the lock the writes take (io_mutex) |
| Cdx::redirect::line | Sink taking a stream's lines, each whole in one call, without its line end: what a system log, the debugger or an installation log keeps as an entry |
| Cdx::redirect::debug | Stream's lines to the debugger (OutputDebugString), beside its other sinks |
| Cdx::redirect::log | Stream's lines into unified logging, beside its other sinks |
| Cdx::redirect::setup | Stream's lines into the application installation log at an event level, beside its other sinks: what a driver package installer reports reaches the log Windows keeps of installations, a custom action without a session included |
| Cdx::redirect::syslog | Redirect stdout to syslog |
| Cstd::thread | STL class |
| Cdx::clock< source_t > | |
| Cdx::clock< dx::source<> > | |
| Cdx::midi::services::stream< device< desc, preference, stream > > | |
| Ccf::runloop | Run loop on a thread of its own: sources are added with += and removed with -=, and the object's construction waits until that loop is up, so a source may be attached right away. Every dxd entity that takes IOKit or CF notifications owns one |
| Cdx::usb::platform::interface::runloop | Interface's own realtime run loop: every asynchronous completion of its pipes runs here, at a 125 µs timing policy |
| Cio::port | Notification port |
| Cdx::clock< source_t > | Realtime tick mechanism: one thread per clock - run/halt lifecycle and tick dispatch; the source_t base owns objective and wait |
| Cdx::coremidi::server::pin< stream_pin_t > | |
| Cdx::coremidi::stream< device_t, circular_t > | One source or destination: the in side writes what the endpoint's callback delivers into the ring at the moment each packet carries and never stalls - a full ring drops and counts - while the out side's own thread reads whole packets and hands them to CoreMIDI at their own timestamps, which schedules what is still due |
| Cdx::midi::services::stream< device_t, circular_t > | Stream of a Windows MIDI Services endpoint: Universal MIDI Packets through the device's connection, an ump::circular ring on this side |
| Cdx::usb::stream::pipe< device_t, circular_t, stream_t > | One isochronous endpoint as a stream: the ring, the cycle of slots the session rotates through and the thread that ticks them. The data path itself is dx::usb::isoc::pipeline, shared with the kernel driver; this class supplies its platform part - a slot's request over its buffer, the completions in submission order, the direction's data event and the timestamp clock. An asynchronous sink keeps its sync endpoint's requests here too (isoc.sync), an implicit feedback source reads its rate off its own delivered lines |
| Cstd::true_type | |
| Cdx::is_dx_iterator< type_t, std::void_t< typename type_t::dx_iterator_tag > > | |
| Cdx::is_initializer_list< std::initializer_list< type_t > > | |
| Cdx::is_smart_pointer< std::shared_ptr< type_t > > | |
| Cdx::is_smart_pointer< std::unique_ptr< type_t, deleter_t > > | |
| Cdx::is_smart_pointer< std::weak_ptr< type_t > > | |
| Cdx::promoting< preference_t, std::void_t< decltype(preference_t::listen)> > | |
| Cdx::test::device< super_device_t, _engine_t >::has_license< type_t, decltype((void) type_t::license, void())> | |
| Cstd::tuple | |
| Cdx::gui::aggregate< image, label, button > | |
| Cdx::gui::aggregate< label, direction< device >, label, power2< juce::String > > | |
| Cdx::gui::aggregate< label, samplerate > | |
| Cdx::gui::aggregate< label, power2< juce::String > > | |
| Cdx::gui::aggregate< component_t > | Several widgets in one row, each at its own width - what a tree item's line is built from |
| Cdx::select< parsers_t > | Select from aggregated drivers |
| Cstream_desc_t | |
| Cdxd::portcls::miniport< stream_desc_t > | Portcls::miniport |
| Cdxd::wavert::stream< stream_desc_t > | Wavert::stream: cyclic WaveRT buffer with client notifications |
| Cstream_pin_t | |
| Cdx::coreaudio::server::pin< stream_pin_t > | Pin as the HAL sees it: the stream object, its format list and every control of this pin, each answering the HAL's property calls from the desc and the device's promoted settings |
| Cdx::coremidi::server::pin< stream_pin_t > | |
| Cstream_pin_t::device_t | |
| Cdx::coremidi::server::device< stream_pin_t > | CoreMIDI device |
| Cstream_t::stream_desc | |
| Cdxd::portcls::miniport< stream_t::stream_desc > | |
| Cstreaming_device_t | |
| Cdxd::portcls::device< streaming_device_t > | Adapter device's WaveRT endpoints over its streaming device's rings |
| Cstruct desc_t::stream | |
| Cdxd::wavert::stream< struct desc_t::stream > | |
| Csuper_device_t | |
| Cdx::service::device< super_device_t > | |
| Cdx::service::device< dx::preference > | |
| Cdx::stream::device<> | |
| Cdx::test::device< super_device_t, engine_t > | |
| Cdx::test::device< super_device_t, typename super_device_t::group_t > | |
| Cdx::service::device< preference_t > | Registry entry behind a device: its class, the bundle that provides it and every property it publishes |
| Cdx::stream::device< super_device_t, _desc_t, _stream_t, _group_t > | Streaming device: its desc, the settings the desc defaults, the streams of that desc grouped by dx::stream::group and the clock those groups run on. Every bus device derives from this one and supplies what its transport does differently - the settings' servers (a rate written to the hardware), the group's tick, the streams' rings. The settings themselves are promoted preferences here, so a wish survives the device and is asked of the transport once the device is there |
| Cdx::test::device< super_device_t, _engine_t > | Test harness's device: the bus device plus its command line parser, and the streaming engine its tests run under - its own group_t slot, or the app's consumer group on its clock divider |
| Csuper_iterator | |
| Cdx::map::driver< _device_t, holder_t >::view::iterator< super_iterator > | |
| Csuper_stream_t | |
| Cdx::stream::stream< device_t, circular_t, super_stream_t, event_t > | |
| Cthread_time_constraint_policy_data_t | |
| Cdx::thread::prio::realtime | Thread::prio::realtime |
| Cdx::clock< source_t > | |
| Cdx::clock< dx::source<> > | |
| Cdx::clock< source_t > | Realtime tick mechanism: one thread per clock - run/halt lifecycle and tick dispatch; the source_t base owns objective and wait |
| Cdx::usb::platform::interface::runloop | Interface's own realtime run loop: every asynchronous completion of its pipes runs here, at a 125 µs timing policy |
| Ctree_t | |
| Cdx::key_value_tree< tree_t > | Hierarchical key/value navigation over a flat persistent store |
| Ctypename stream_t::stream_desc | |
| Cdxd::portcls::miniport< typename stream_t::stream_desc > | |
| CUNICODE_STRING | |
| Cdxd::wdm::unicode< max_length > | WDM unicode string helper |
| CUSBD_PIPE_INFORMATION | |
| Cdxd::usb::pipe | |
| Cdxd::usb::stream::pipe< device_t > | One endpoint's ring and request pipeline |
| CwxApp | |
| Cdx::gui::cpl< driver_t > | Control panel application: one window holding the driver's device tree, every device a branch of it. The driver itself is a base of the tree view below, so a device arriving on the bus adds its line - marshalled onto the message thread |
| CwxButton | |
| Cdx::gui::button | Button, toggling where a listener is given |
| CwxCheckBox | |
| Cdx::gui::checkbox | Check box for one boolean of the desc |
| CwxComboBox | |
| Cdx::gui::box< item_t > | |
| Cdx::gui::box< int > | |
| Cdx::gui::box< item_t > | Drop down whose items are either ids or their text, depending on what the edited value is |
| CwxDialog | |
| Cdx::gui::exception_dialog | Dx::gui::exception_dialog wxWidgets counterpart of the juce interface's exception hierarchy dialog: shows a dx::exception and its chain of causes (frame, comment, what()+error code, file:line, function) as a navigable tree, instead of collapsing it into a single message string |
| CwxPanel | |
| Cdx::gui::item< component > | |
| Cdx::gui::item< label > | |
| Cdx::gui::item< checkbox > | |
| Cdx::gui::item< aggregate< image, label, button > > | |
| Cdx::gui::item< aggregate< label, samplerate > > | |
| Cdx::gui::item< aggregate< label, power2< juce::String > > > | |
| Cdx::gui::item< aggregate< label, direction< device >, label, power2< juce::String > > > | |
| Cdx::gui::bar | Row of buttons laid out left to right, each sized to its text, with one listener for all of them |
| Cdx::gui::item< component_t > | One line of the device tree: its widget is created when the line becomes visible and dropped with it |
| CwxScrolledWindow | |
| Cdx::gui::cpl< driver_t >::frame::panel::scroller | |
| CwxStaticBitmap | |
| Cdx::gui::image | Image from a file or a resource, scaled into its place |
| CwxStaticText | |
| Cdx::gui::label | Text field, editable where a listener is given |
| CwxTextCtrl | |
| Cdx::gui::text | Dx::gui::text An editable single line text field, committing on Enter or on losing focus |