| C__map | |
| Cdxd::map<dx::kernel, vm_t> | WDK: kernel space memory mapping |
| Cdxd::map<dx::user, vm_t> | Buffer as its client sees it: a dext cannot map into its client, so the address stays empty |
| 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::stream::engine::device<_device_t, _engine_t> | Bus device plus the streaming engine its app session runs on - attached in launch(), released in conclude(), so the engine's lifetime is the device's own and a call holding the device holds the engine |
| C_preference | |
| Cdx::key_value_tree<_preference> | |
| C_super_device_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 |
| 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 |
| 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 named by the subject given that the root signed, that covers the device's vendor and model, 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::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<super_device_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, super_device_t>>, group_t<device<desc_t, preference_t, stream_t, group_t, super_device_t>>, super_device_t> | |
| Cdx::proxy::stream::_device<desc_t, preference_t, stream_t, group_t, super_device_t> | |
| Cdx::proxy::stream::device<desc_t, preference_t, stream_t, group_t, super_device_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::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<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: the device the service hosts under <product id>/<puuid>, its settings the service's - mirrored as a kernel driver's values are (dx::proxy::promoted) over the connection |
| Cdx::virtuel::stream::_device<desc_t, preference_t, stream_t, group_t> | Virtual streaming device interface class |
| Cdx::stream::device<usb::device<preference_t>, desc_t, stream_t, group_t> | |
| 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> | Dx::gui::device A device_t with its outline (dx::gui::model) as its own line of the tree, built by attach() as the driver adds it; its icon the image the tree paints behind it |
| Cdx::gui::device<device_t> | Dx::gui::device A device_t with its outline (dx::gui::model) as its own line of the tree, built by attach() as the driver adds it; its icon the image the tree paints behind it |
| Cdxd::audio::device<device_t> | AudioDriverKit binding of a clocked streaming device: one IOUserAudioDevice per desc, one IOUserAudioStream per audio pin |
| 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> | Device tree hosted by the service: the driver served under its product id as a kernel driver serves its client - a client's IOCTL lands in ioctl(), every arrival and removal is the broadcast |
| Cdx::stream::driver<driver_t> | Stream driver interface class |
| Cdx::virtuel::driver<device<>> | |
| 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 |
| Cdx::test::stream::driver<super_device_t, device_t, driver_t> | Bus's command set with the streaming tests: a device with a streaming engine is testable |
| Cdx::test::service::driver<driver_t> | Service commands of the test app: the connection's state, and an echo round trip test - against the service, or a server of the test's own |
| 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: signalled when the kernel triggers it, or its callback called instead - on the thread of the kernel's async notifications |
| 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::event<user> | Process local event over a condition variable; dx::event<kernel> is the platform's own, waitable together with an OS handle |
| Cdx::event<kernel> | Kernel triggerable user space event: signalled when the kernel triggers it, or its callback called instead - on the thread of the kernel's async notifications |
| Cdx::shared::event | MacOS user space shared event |
| Cdx::coreaudio::server::device<pin_t> | CoreAudio server streaming device |
| Cdx::service::stream::device<super_device_t>::peer | |
| 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::log::circular | Log's lines from any number of writers, lock free: a writer reserves its entry at tx - a length word and the line, padded to the word - and writes the length word last; the one reader takes the entries whose length word stands and clears them behind it, so a zero length is a line not written yet The ring's size is a multiple of the word, so a length word never wraps |
| 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::[struct].cycle | |
| 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::conversion | What one pair of sample types moves with: the loops of channel, and the widths the transfers step by |
| 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::device::setting | |
| Cdx::coreaudio::property::plugin | |
| Cdx::coreaudio::property::pod | |
| Cdx::coreaudio::property::pod::stream | |
| 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::[struct].cache | |
| Cdx::coreaudio::server::pin::[struct].cache.linesize | |
| Cdx::coreaudio::server::pin::[struct].cache.sync | |
| 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 product's 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::proxy::driver<device_t> | |
| Cdx::stream::driver<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's device tree as a client sees it: its devices the service's (dx::ioctl::service::devices), taken anew on every broadcast - a device the service no longer lists removed, one it lists anew added -, every device gone while the service does not answer |
| 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::service::app | MacOS: the service a launchd daemon - its mach service the plist's (dxd_daemon), launchd starting it at a client's first message: it runs until launchd or the console ends it (SIGTERM, SIGINT) |
| 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::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, dx::proxy::device<dx::preference>>>, group<device<dx::stream::desc<>, dx::preference, stream, group, dx::proxy::device<dx::preference>>>> | |
| Cdx::proxy::stream::_device<dx::stream::desc<>, dx::preference, stream<device<dx::stream::desc<>, dx::preference, stream, group, dx::proxy::device<dx::preference>>>, group<device<dx::stream::desc<>, dx::preference, stream, group, dx::proxy::device<dx::preference>>>, dx::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::proxy::device<preference_t> | OS proxy device driver interface class |
| Cdx::usb::platform::device<preference_t> | |
| Cdx::event<dx::user> | |
| Cdx::service::app | MacOS: the service a launchd daemon - its mach service the plist's (dxd_daemon), launchd starting it at a client's first message: it runs until launchd or the console ends it (SIGTERM, SIGINT) |
| Cdx::fence | Memory ordering plain shared state needs on weakly ordered CPUs, in user mode and the kernel alike |
| Cdx::firewire::node | Node as its self-ID packets state it (IEEE 1394a-2000 4.3.4.1) |
| Cdx::firewire::segment | Run of 48 bit bus addresses another node reaches host memory at - a physical address space's part |
| Cdx::firewire::topology | Bus as a reset's self-ID phase states it: its nodes in phy id order, the root last |
| Cdx::gui::control | One control of an outline row: what it shows and, where it may change something, how - a toolkit renders it, nothing else |
| Cdx::gui::describe | Outline of a struct that names its members (dx_serialize.h: visit): a line per member, as its kind says - a power of two, a bitmap of named bits, a choice among the options its struct allows as it stands -, a nested struct a branch of its own or, where all its members are switches, one line of toggles; an array a branch whose count is chosen, its elements beneath it. Every edit commits and tells changed, so every control asks its value and its options anew: what one member allows follows another. extend() adds a caller's lines to an array's element |
| 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::gui::model<device_t> | Device's outline: its line with icon and name, its identity, its desc (dx::gui::describe) - the clock's rate, source and sync reference and a stream's source among its lines -, its I/O size, its transport and its clients |
| Cdx::gui::node | One line of the outline: its controls and the lines beneath it, those refilled as watch tells |
| Cdx::hwid | Model's hardware id as its bus enumerates it, off its desc at compile time: USB\VID_xxxx&PID_xxxx, PCI\VEN_xxxx&DEV_xxxx - PCI\CC_xxxxxx for a PCI model without vendor id, its model id the class code -, a software device's the product's urid; empty on a bus without one - the models of a product's inf (kernel/dxd_models.cpp) and the installer's devices alike |
| Cdx::int24 | Packed 24 bit integer, little endian: its low 16 bits and its high byte accessed as such - the two accesses clang makes of a packed 24 bit field -, sign extended |
| 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::int32be | 32 bit integer stored big endian: converts from and to the native int on every access, so the circular's converters take it like int32_t |
| 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 two 32 bit words: the level - a dx::log::level per dx::log::scope per dx::log::module, four bits each - and the pipes (dx::log::pipe), where the lines go. The words are what a driver, a kernel, a host and a firmware 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 macro hands the member list to the tree sink of dx_serialize.h, so a store - the plugin property's dictionary as a cf::store among them - holds the log resolved rather than the words |
| Cdx::log::[struct].__unnamed0__.__unnamed0__ | |
| Cdx::log::[union].__unnamed0__ | |
| 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::pipe | Where the std streams' lines go: the dx::log::pipe::sinks of each - a stream naming no sink of the process drops its lines |
| Cdx::log::pipe::[struct].__unnamed0__ | |
| Cdx::log::pipe::sinks | Stream's sinks, a bit each in the order of name |
| Cdx::log::pipe::sinks::[struct].__unnamed0__ | |
| 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::parser | MIDI 1.0 byte stream into its messages, the state between two bytes: write(const uint8_t* bytes, uint8_t size) takes each as it completes - a channel voice or system common message whole, its status resolved by running status, a real time byte alone wherever it falls, a system exclusive in pieces of up to three bytes with its F0 and F7 among them, which a status byte other than real time ends with an F7; a data byte without status and an F7 outside a system exclusive are dropped. A byte completes two pieces at most |
| 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::registry::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::registry::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::usb::pipe<device_t> | |
| 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::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 | MacOS: the service a launchd daemon - its mach service the plist's (dxd_daemon), launchd starting it at a client's first message: it runs until launchd or the console ends it (SIGTERM, SIGINT) |
| Cdx::service::app | MacOS: the service a launchd daemon - its mach service the plist's (dxd_daemon), launchd starting it at a client's first message: it runs until launchd or the console ends it (SIGTERM, SIGINT) |
| 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::pipe<device_t> | |
| Cdx::stream::stream<device_t, dx::circular, usb::pipe<device_t>> | |
| Cdx::usb::platform::pipe<device_t, interface_t> | Platform half of a pipe: the transfers over the interface's endpoint and their completions - a group pipe's and an isochronous one's queue their 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 - a group pipe's and an isochronous one's queue their 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::install::parser | Driver extension installer: a product's <Product>Install.app - a dext is activated by the app carrying it in Contents/Library/SystemExtensions alone - and a command line alike |
| Cdx::install::parser | Driver extension installer: a product's <Product>Install.app - a dext is activated by the app carrying it in Contents/Library/SystemExtensions alone - and a command line alike |
| Cdx::select<parsers_t> | Select from aggregated drivers |
| Cdx::service::parser | MacOS: the service's command line - launchd installs and starts it (the product's package), so it runs in the console alone |
| Cdx::service::parser | MacOS: the service's command line - launchd installs and starts it (the product's package), so it runs in the console alone |
| Cdx::test::device<super_device_t> | Test harness's device: the bus device plus its command line parser - a derived device adds its commands to the parser's |
| Cdx::test::stream::device<super_device_t, engine_t> | |
| Cdx::test::stream::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::test::stream::device<super_device_t, _engine_t> | Test harness's device with 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 |
| 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::parser::dispatch::[struct].flags | |
| Cdx::pci | Physical PCI stream descriptor |
| Cdx::pci::dma | Physical DMA stream descriptor |
| Cdx::pci::segment | Run of device addresses, as a DMA engine takes it |
| 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::disable_c3::shared | Process's holders share one: the first turns the deep idle states off, the last restores them |
| 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::present::bitmap<names_t> | Bits each named: names() the (name, bit) pairs |
| Cdx::present::choice<options_t> | One of options(): the (name, value) pairs the struct allows as it stands |
| Cdx::present::power2 | Power of two, and the half-way values, from min to max |
| 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, super_device_t>::chain<uint32_t> | |
| Cdx::proxy::stream::_device<desc_t, preference_t, stream_t, group_t, super_device_t>::chain<typename dx::stream::desc<>::configuration> | |
| Cdx::proxy::stream::_device<desc_t, preference_t, stream_t, group_t, super_device_t>::chain<typename desc_t::configuration> | |
| Cdx::proxy::stream::_device<desc_t, preference_t, stream_t, group_t, super_device_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::stream::_device<desc_t, preference_t, stream_t, group_t, super_device_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, super_device_t>::monitor::header | |
| Cdx::proxy::stream::circular<device_t, target_t, circular_t> | Circular of the driver's, mapped into this client: opened by its target, its participant event the broadcast the driver signals |
| 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::redirect::pipe | Sinks a dx::log::pipe names, joined to std::cerr, std::clog and std::cout for the object's life |
| Cdx::redirect::screen | Terminal's live block below its scrolling text: a row per writer whose line stands open, as its own terminal would show it - a carriage return returns to the row's start, the text after it overwrites the row in place, a line end closes the row into the text above. Without an open row a line passes as it is. Every distributor on the terminal draws through the one screen, under io_mutex |
| 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::event<kernel> | Kernel triggerable user space event: signalled when the kernel triggers it, or its callback called instead - on the thread of the kernel's async notifications |
| 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::usb::hub | |
| Cdx::service::platform::pipe | Windows: one end of a service's named pipe - a message pipe, read and written overlapped: Windows serializes the synchronous operations on a process' pipes |
| Cdx::service::platform::connection | MacOS: a client's connection to a service - a launchd mach service, or a listener below it - over XPC |
| Cdx::service::connection | Client's connection to a service: its IOCTLs in the forms a kernel driver's client takes them, so a mirror of a kernel's value (dx::proxy::promoted) mirrors the service's alike - asked on its first access, told a wish and read back on every broadcast |
| 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::clock | Dx::ioctl::service::clock's data: the client's clock event by its name, and the client's iosize |
| Cdx::service::create<desc_t> | Dx::ioctl::service::create's data: the device's id and its desc |
| Cdx::service::driver<driver_t>::property | This bus's name in the device tree and the preference store |
| Cdx::service::endpoints | MacOS: the endpoints of this process' listeners by their ids - launchd registers a daemon's plist's mach services alone, so a listener whose id names a part below the service (<service>/<device>) is anonymous, and the service's listener hands its endpoint to a client asking with that id under endpoint |
| 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::parser | MacOS: the service's command line - launchd installs and starts it (the product's package), so it runs in the console alone |
| Cdx::service::message | Head of every message on a service connection, its data behind it: a request, its reply or the service's broadcast |
| Cdx::service::peer | Client's connection as the service sees it - the service's counterpart of a kernel driver's client: what the client asks lands in ioctl(), its connection's end destroys it |
| Cdx::service::device<super_device_t>::peer | Client's connection to the device: what it asks the device answers, while the client stands the device stands |
| Cdx::service::stream::device<super_device_t>::peer | |
| Cdx::service::driver<driver_t>::peer | Client's connection to the driver: what it asks the driver answers |
| Cdx::service::server | MacOS: a service's listener - a launchd mach service, or an anonymous one below it (dx::service::endpoints) - a peer per client connection |
| 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()>>> | |
| Cdx::listen<std::function<void()>> | |
| Cdx::shared::guard<listeners<std::function<void(const double &)>>> | |
| Cdx::listen<std::function<void(const double &)>> | |
| 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::shared::memory::header::[struct].shared | |
| 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::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::monitor::[struct].performance | |
| 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, dx::proxy::device<dx::preference>>>, group<device<dx::stream::desc<>, dx::preference, stream, group, dx::proxy::device<dx::preference>>>> | |
| 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>::configuration | Device's configuration, the value the promoted configuration holds: the bus entity selecting it and, per stream, the index of its active stream configuration - one past the stream's configurations: the stream is off |
| 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::clock | |
| Cdx::stream::desc<target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources>::stream::clock::sync | |
| 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::options | |
| Cdx::stream::desc<target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources>::stream::options::quirk | Where the device departs from its class: what it does is the opposite of what its class descriptors state |
| Cdx::stream::desc<target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources>::stream::options::spdif | |
| 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_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources>::stream::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, 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::[struct].hw | |
| Cdx::stream::device::[struct]registration.hw.__unnamed0__ | Consumer's registration: its event, its own iosize and sample counter - the counter the tick's alone, a reset asked of it |
| 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::[struct].__unnamed0__ | |
| Cdx::stream::encoder::index | |
| Cdx::stream::engine::consumer<group_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::[struct].cache | |
| Cdx::stream::engine::group::[struct].cache.sync | |
| Cdx::stream::engine::group::[struct].cache.sync.io | |
| Cdx::stream::engine::group::[struct].cache.sync.io.pin | |
| 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::row<ext_t> | Conversions of one participant's sample type against every ring format: sample picks the ring's column |
| Cdx::stream::row<ext_t>::entry<circular_t> | |
| 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<proxy::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, 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 |
| 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::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<proxy::event>> | |
| Cdx::stream::group<device_t, source_t> | |
| Cdx::stream::group<device_t, dx::free_run<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::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::[struct].cache | |
| 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::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::stream::stream<device_t, dx::circular, dx::stream::control<dx::stream::object<device_t>>, proxy::event> | |
| 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::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::load | Load scenario the streaming monitor runs its session under: threads of the named kind for the object's lifetime |
| Cdx::test::stream::device<super_device_t, _engine_t>::impulse | One impulse test: what an analog loop keeps is its timing alone |
| Cdx::test::stream::device::impulse::[struct].phase | |
| Cdx::test::stream::device<super_device_t, _engine_t>::mask | Channels a monitor's callback works on: one word per direction, plus the mix target |
| Cdx::test::stream::device<super_device_t, _engine_t>::sine | One generator tone: the channels it feeds and its phase, carried between callbacks |
| Cdx::test::stream::device<super_device_t, _engine_t>::unit_test | Unit test's rows and timing: the device's own, or the ones a driver's unit test hands every device it runs |
| Cdx::test::surprise::asynchronous<driver_t> | Surprise removals of the devices under test in turn, one every interval, on a thread of its own |
| Cdx::test::table | Command's results as a table: its head once, a row per run beneath the one before - the run's seconds and its share of the duration ahead of the command's columns |
| Cdx::test::table::column | |
| Cdx::test::table::row<values_t> | One run's row: true until stopped or the duration is over - asked, it rewrites itself in place every 20 ms, the cursor hidden; its end writes the last state, where it ran, and shows the cursor again |
| 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::uint24 | Packed 24 bit unsigned integer, little endian: its low 16 bits and its high byte accessed as such |
| 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, dx::circular> | |
| Cdx::usb::isoc::pipeline<dxd::usb::stream::pipe> | |
| Cdx::usb::isoc::pipeline<pipe_t, circular_t> | One clock domain 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::isoc::cycle::tick::[struct].delivered | |
| Cdx::usb::audio::isoc::cycle::tick::[struct].detected | |
| Cdx::usb::audio::range<ranges_t> | ADC2 control's answer: subranges of minimum, maximum and resolution |
| Cdx::usb::audio::subclass | |
| Cdx::usb::audio::to::[struct].analog_connector | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].communication_speaker | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].da_stream | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].desktop_microphone | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].desktop_speaker | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].digital | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].digital_interface | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].down_line_phone | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].dv_stream | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].echo_canceling | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].echo_suppressing | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].handset | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].head_mounted | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].headphones | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].headset | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].legacy_connector | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].lfe | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].lfe_speaker | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].line | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].line_connector | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].microphone | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].microphone_array | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].omni_microphone | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].personal_microphone | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].phone_line | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].processing_microphone | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].room_speaker | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].spdif | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].speaker | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].speakerphone | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].synth | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].synthesizer | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].telephone | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].tty | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| Cdx::usb::audio::to::[struct].usb_streaming | What such a terminal is as a plug of a pin: what the two vocabularies share - a terminal the list leaves out keeps its number, since no word of dx::stream::plug names it |
| 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::string | String descriptor at its largest, the same on every platform: UTF-16LE, its length device supplied and untrusted; inside it head is its base's injected class name, so the union's member is named qualified |
| 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::hub::port | Port's connection: the device's descriptor, speed and open pipes |
| 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::correlation::[struct].correlated | |
| 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::pipeline::[struct].cache | |
| Cdx::usb::isoc::pipeline::[struct].sync | |
| 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::_device::[struct].adc | |
| Cdx::usb::stream::_device::[struct].adc.__unnamed0__.v2 | |
| Cdx::usb::stream::_device::[struct].adc.__unnamed0__.v2.clock | |
| Cdx::usb::stream::_device::[struct].adc.__unnamed0__.v2.clock.selector | |
| Cdx::usb::stream::_device::[struct].adc.__unnamed0__.v2.clock.source | |
| Cdx::usb::stream::_device::[union].adc.__unnamed0__ | |
| 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::cache::[struct].transaction_size | |
| 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 |
| 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<int, type_t> | Atomic scalar on the compiler's builtins - a dext has no interlocked KPI and needs none |
| 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::__atomic_scalar<sizeof(uint64_t), uint64_t> | |
| Cdxd::atomic<uint64_t> | |
| 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> | Kernel event: auto reset, as a WDM synchronization event |
| Cdxd::event<dx::kernel> | Kernel event: auto reset, as a WDM synchronization event |
| Cdxd::event<dx::user> | Kernel representation of user space event |
| 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 conversions those rings are moved with - everything a client's tick needs, none of it shared |
| Cdxd::event<dx::user> | Kernel representation of user space event |
| 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::audio::endpoint | |
| Cdxd::audio::device<device_t> | AudioDriverKit binding of a clocked streaming device: one IOUserAudioDevice per desc, one IOUserAudioStream per audio pin |
| Cdxd::broadcast::listener | Client's listener: the user event of the IOCTL that registered it, woken by every signal() until another registration replaces it or the client goes |
| Cdxd::bus | WDM BUS class |
| Cdxd::bus::desc | Device description for bus class |
| Cdxd::bus::desc::[struct].matching | |
| Cdxd::bus::desc::[struct].node | |
| Cdxd::completion | IOCTL call in flight on a client, which a user event registered by that call binds to |
| Cdxd::platform::session | What the user client shell (dxd_user_client) serves: a device's client or the driver's |
| Cdxd::platform::device::client | Open of the device: one per dxd_user_client the device's shell opens |
| Cdxd::platform::driver::client | Open of the driver itself: one per dxd_user_client of the type dx::ioctl::driver::client the driver's shell opens - the one way to create and destroy devices |
| Cdxd::decay<type_t> | No array/function decay - not needed here |
| Cdxd::device | Device the OS publishes and user mode finds and opens |
| Cdxd::kmdf::device | KMDF device: the contract's hooks on the framework's callbacks, its clients created per file object |
| Cdxd::firewire::platform::form<kmdf::device> | KMDF: a request block the framework's I/O target's, which bounds it by the caller's timeout |
| Cdxd::kmdf::pci::device | KMDF PCI device: the PCI half's interface (PCI devices) on the framework |
| Cdxd::platform::device | DriverKit device: the plain C++ object its IOService shell (dxd_device) holds |
| Cdxd::firewire::platform::form<dxd::platform::device> | Plain WDM: a request block an internal device control to the device object below, which completes it within the bus's own timeouts |
| Cdxd::firewire::platform::device<super_device_t> | Windows FireWire unit transport: the 1394 bus driver's request blocks, on plain WDM and KMDF alike |
| Cdxd::firewire::device<super_device_t> | IEEE 1394 unit: the asynchronous transactions a unit's driver issues to its node, on every platform |
| Cdxd::pci::device | DriverKit PCI device: its nub opened with bus mastering and memory space, its memory and interrupts |
| Cdxd::firewire::controller<super_device_t> | IEEE 1394 OHCI host controller: the link the OS matched by its PCI class, its GUID the device's puid |
| Cdxd::pci::device | DriverKit PCI device: its nub opened with bus mastering and memory space, its memory and interrupts |
| Cdxd::portcls::adapter::device | Per-FDO adapter device: miniport subdevices are created in start() |
| Cdxd::usb::device<super_device_t> | |
| Cdxd::platform::device | DriverKit device: the plain C++ object its IOService shell (dxd_device) holds |
| Cdxd::device::client | Open of a device, created by device::client_create(): what it does not answer itself goes to its device |
| Cdxd::platform::device::client | Open of the device: one per dxd_user_client the device's shell opens |
| Cdxd::driver | Driver: one per driver binary, holding and answering what is driver-wide |
| Cdxd::kmdf::driver | WDF driver, one per driver object: the framework device objects with their queue and interface, its devices made by the product's create() |
| Cdxd::power<kmdf::driver> | KMDF power policy: the framework owns it, each device's D0 entry and exit tell the device (kmdf::device) |
| Cdxd::platform::driver | DriverKit driver: the plain C++ object its shell holds, making the devices the host asks for |
| Cdxd::portcls::adapter | PortCls adapter driver |
| Cdxd::power<portcls::adapter> | PortCls power policy: PortCls owns the IRPs and tells each adapter device its device state |
| Cdxd::power<platform::driver> | DriverKit power policy: the device shell's SetPowerState tells its device |
| Cdxd::power<platform::driver> | DriverKit power policy: the device shell's SetPowerState tells its device |
| Cdxd::platform::driver | DriverKit driver: the plain C++ object its shell holds, making the devices the host asks for |
| Cdxd::driver::client | Open of the driver itself, created by driver::client_create(): what it does not answer itself goes to the driver |
| Cdxd::platform::driver::client | Open of the driver itself: one per dxd_user_client of the type dx::ioctl::driver::client the driver's shell opens - the one way to create and destroy devices |
| Cdxd::event<scope_t> | Kernel representation of a user space event |
| Cdxd::process | Process: launch() on a queue of its own, the event signalled on its way out |
| Cdxd::clock | DriverKit 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::virtuel::stream::device<super_device_t, desc_t>::clock | Autonomous software tick source for this device's single clock domain |
| Cdxd::dmus::stream<backend_t> | Dmus::stream: a DirectMusic pin stream over its device's MIDI ring |
| Cdxd::process | Process: launch() on a queue of its own, the event signalled on its way out |
| Cdxd::wdm::irp<synchrony_t> | IRP class |
| Cdxd::event<scope> | |
| Cdxd::doubly::linked::event<dx::user> | |
| Cdxd::doubly::linked::event<scope> | Semi lock free doubly linked event item |
| Cdxd::linked::event<scope> | Lock free linked event |
| Cdxd::firewire::platform::device<super_device_t>::address | Address range this driver publishes on the bus: a node writing into it hands its data over through the FIFO entries, write() takes them |
| Cdxd::firewire::platform::device<super_device_t>::phy | Physical address space: host memory another node reaches by its own DMA, as runs of bus addresses (segment) |
| Cdxd::firewire::platform::form<super_device_t> | Windows form's reach to the 1394 bus driver below, the layer between the form's device and the transport: send() hands the bus driver a request block - specialized per form beside its device (plain WDM: dxd_firewire_platform_device.h, KMDF: dxd_kmdf_firewire_platform_device.h) |
| Cdxd::firewire::platform::irb<request_t> | One 1394 request block per request kind: each specialization fills the union member its request uses, so a caller states the request's own arguments and never the SDK's union |
| 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::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<dx::user> | |
| 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<super_device_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<dx::kernel, 32> | |
| Cdxd::buffer<scope_t, limit_t> | DriverKit memory buffer: whole pages |
| Cdxd::memory<dx::kernel, ::IOBufferMemoryDescriptor> | |
| Cdxd::buffer<dx::user> | |
| Cdxd::buffer<dx::kernel, 32> | |
| Cdxd::buffer<scope_t, limit_t> | DriverKit memory buffer: whole pages |
| Cdxd::models::hex | Value as 0x and its digits |
| Cdxd::models::line | |
| Cdxd::models::lines<size> | |
| Cdxd::multichannel::stream::[struct].control | |
| Cdxd::multichannel::stream::umap::[struct].cache | |
| 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, dxd::streaming::transport_server<dxd::streaming::device>> | |
| Cdxd::promoted<uint32_t, clock_server_t> | |
| Cdxd::promoted<typename desc_t::configuration, dxd::streaming::configuration_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::spinlock | Dext runs at no interrupt level: what the kernel platforms take a spinlock for is a mutex here |
| Cdxd::broadcast | Broadcast signalization of participating linked event items |
| Cdxd::multichannel::stream<channel_t> | Generic kernel multichannel stream |
| Cdxd::stream::mappings<stream_t> | Client's mappings of the rings it opened, each by the id its memory type carries |
| Cdxd::open<object_t, service_t> | |
| Cdxd::pci::bars | Windows PCI device's BARs, each by its index: what the WDM and the KMDF half (PCI devices) share |
| Cdxd::pci::scatter_gather<limit_t> | Buffer's device addresses below 1<< limit_t, from initialize() to free() |
| Cdxd::pci::scatter_gather<64> | |
| Cdxd::kmdf::pci::device::scatter_gather<limit_t> | |
| Cdxd::pci::device::scatter_gather<limit_t> | Memory's device addresses below 1<< limit_t, from initialize() to free(): mapped by the device's IOMMU (DART), in at most the 32 runs one preparation hands |
| Cdxd::platform::driver::form | Form's construction: it registers with the OS, then installs dispatch() |
| 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::power<super_driver_t> | OS's power management bound to a driver form's devices (Driver architecture (future): one shape on every platform): one specialization per form |
| 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::kmdf::device | KMDF device: the contract's hooks on the framework's callbacks, its clients created per file object |
| Cdxd::platform::device | DriverKit device: the plain C++ object its IOService shell (dxd_device) holds |
| 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::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::clock::[struct].control | Buffer switch bookkeeping every pin the client attached follows: both directions switch together |
| Cdxd::streaming::configuration_server<device_t> | Device's configuration: the device's alignment of the wish - a bus device narrows it to what its bus carries - and the value it stands at while a stream is started; every ring whose stream configuration changes binds to its new one ahead of the commit, a ring that cannot stands and the wish is aligned around it (desc::bound()) |
| Cdxd::streaming::domain | Clock domain every client rides on: the DAW clock |
| 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 |
| 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::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, typename super::client> | |
| Cdxd::streaming::client<device_t, super::client> | |
| Cdxd::streaming::device<super_device_t, desc_t, clock_server_t>::client | Control client: the platform's client with this device's streaming state |
| Cdxd::streaming::client<device_t, platform_t> | Streaming state of one control client |
| Cdxd::streaming::transport_server<device_t> | Transport's settings in the dx::stream::setting order - its wait strategy, its lead out and in - the desc's defaults until a client sets them, committed and handed to the bus running the transport |
| 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<super_device_t, desc_t> | Runs the group while streams are started, from within started's promoted server |
| Cdxd::virtuel::stream::clock_server<super_device_t, desc_t> | Runs the device clock while streams are started, from within started's promoted server |
| 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::kmdf::device | KMDF device: the contract's hooks on the framework's callbacks, its clients created per file object |
| Cdxd::kmdf::driver | WDF driver, one per driver object: the framework device objects with their queue and interface, its devices made by the product's create() |
| Cdxd::platform::driver | DriverKit driver: the plain C++ object its shell holds, making the devices the host asks for |
| 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>, circular_t> | |
| Cdx::stream::engine::group<group_t, _pin_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<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<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 |
| 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::registry::device<dx::preference> | |
| Cdx::usb::platform::device<preference_t> | |
| Cdx::usb::platform::device<dx::preference> | |
| Cdx::registry::device<preference_t> | Registry entry behind a device: its class, the bundle that provides it and every property it publishes |
| Cdx::serial | Serial interface |
| 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 |
| CIRB | |
| Cdxd::firewire::platform::irb<REQUEST_ALLOCATE_ADDRESS_RANGE> | |
| Cdxd::firewire::platform::irb<REQUEST_ASYNC_LOCK> | |
| Cdxd::firewire::platform::irb<REQUEST_ASYNC_READ> | |
| Cdxd::firewire::platform::irb<REQUEST_ASYNC_WRITE> | |
| Cdxd::firewire::platform::irb<REQUEST_BUS_RESET_NOTIFICATION> | |
| Cdxd::firewire::platform::irb<REQUEST_FREE_ADDRESS_RANGE> | Address range's removal - the DeviceExtension as at the allocation |
| Cdxd::firewire::platform::irb<REQUEST_GET_GENERATION_COUNT> | |
| Cdxd::firewire::platform::irb<REQUEST_GET_LOCAL_HOST_INFO> | |
| Cjuce::Button::Listener | |
| 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> | Drop down whose items are either ids or their text, depending on what the edited value is |
| Cjuce::ComboBox::Listener | |
| 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::cpl<driver_t>::window::component | |
| Cdx::gui::row | Line of the outline's controls, left to right, each at the width its content needs; one watching its value refreshes on the message thread while it lives |
| 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_t> | One line of the device tree: its widget is created when the line becomes visible and dropped with it |
| Cdx::gui::line | Line of the outline in the tree: its row made while the line shows, the lines beneath it its sub items |
| Cdx::gui::device<device_t> | Dx::gui::device A device_t with its outline (dx::gui::model) as its own line of the tree, built by attach() as the driver adds it; its icon the image the tree paints behind it |
| 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<proxy::event>> | |
| Cdx::stream::group<device_t, dx::free_run<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::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::stream::driver<device<pin_t>> | |
| Cdx::coreaudio::server::plugin<pin_t, device_t, driver_t> | CoreAudio server plugin |
| Cproxy::stream::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> | Kernel event: auto reset, as a WDM synchronization event |
| 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 |
| 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 | MacOS: the service a launchd daemon - its mach service the plist's (dxd_daemon), launchd starting it at a client's first message: it runs until launchd or the console ends it (SIGTERM, SIGINT) |
| 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::gui::changed | Change without a promoted of its own, told to the refreshes keyed: an outline's edits |
| Cdx::key_value_tree<tree_t> | Hierarchical key/value navigation over a flat persistent store |
| 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::stream::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::stream::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::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()>> | |
| Cdx::listeners<std::function<void(const double &)>> | |
| 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::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::promoted<device_t, value_t> | Value its driver serves as an IOCTL, mirrored: asked on its first access, a wish sent and the driver's answer committed - the driver is the authority -, and read back on every change the driver signals (the device's broadcast) - a kernel driver's through its proxy device, a service's through its connection (dx::service::connection) |
| Cdx::proxy::stream::_device<desc_t, preference_t, stream_t, group_t, super_device_t>::promoted<value_t, proxy_value_t, _settable> | Dx::proxy::stream::device::promoted with device::preference |
| 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::proxy::promoted<dx::service::connection, dx::log> | |
| Cdx::promoted<os_result> | |
| 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 | Setting the device's host keeps (dx::stream::setting) mirrored: a promoted property of the plugin's device, addressed by the setting and its stream's index - as service::client::device::mirror over its connection |
| Cdx::proxy::promoted<service::connection, uint32_t> | |
| Cdx::service::client::_device<desc_t, preference_t, stream_t, group_t>::mirror | Transport settings' mirror (dx::stream::settings, a hosted device's): the setting mapped to the service's IOCTL |
| Cdx::proxy::promoted<dx::service::connection, uint32_t> | |
| Cdx::proxy::stream::_device<desc_t, preference_t, stream_t, group_t, super_device_t>::promoted<uint32_t> | |
| Cdx::proxy::stream::_device<desc_t, preference_t, stream_t, group_t, super_device_t>::mirror | Transport settings' mirror (dx::stream::settings, a hosted device's): born with the IOCTL, the setting mapped to the kernel's |
| Cdx::promoted<structdesc_t::stream *> | |
| Cdx::promoted<typenamedesc_t::configuration> | |
| Cdx::promoted<std::string> | |
| Cdx::proxy::stream::_device<desc_t, preference_t, stream_t, group_t, super_device_t>::promoted<std::string> | |
| Cdx::promoted<desc> | |
| Cdx::proxy::promoted<dx::service::connection, 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, super_device_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::promoted<dx::stream::format> | |
| Cdx::promoted<dx::stream::desc<>> | |
| Cdx::proxy::stream::_device<desc_t, preference_t, stream_t, group_t, super_device_t>::promoted<dx::stream::desc<>> | |
| Cdx::promoted<typename desc::configuration> | |
| Cdx::proxy::promoted<dx::service::connection, typename desc::configuration> | |
| Cdx::promoted<desc_t> | |
| Cdx::proxy::promoted<dx::service::connection, desc_t> | |
| Cdx::proxy::stream::_device<desc_t, preference_t, stream_t, group_t, super_device_t>::promoted<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::promoted<typename desc_t::configuration> | |
| Cdx::proxy::promoted<dx::service::connection, typename desc_t::configuration> | |
| 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::promoted<_value_t> | Promoted value |
| 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<super_device_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<dx::device<std::string, preference_t>, desc_t, stream_t, group_t> | |
| Cdx::stream::device<usb::device<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, dx::proxy::device<dx::preference>>>, group<device<dx::stream::desc<>, dx::preference, stream, group, dx::proxy::device<dx::preference>>>> | |
| 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::set<K> | STL class |
| Cdx::match | Which devices a bus takes: any of its dictionaries whose every verb the device states alike, an empty dictionary every device |
| 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 line to each sink whole, its start prefixed by the writing thread's indent. A writer never waits: it gathers its line and puts it into the distributor's dx::log::circular at the line end (at sync() too, where the stream does not flush every insertion); whoever finds the sinks free (io_mutex) takes the ring into them. 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 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::platform::notification | User's notifications on UNUserNotificationCenter: an app's alone - a bundle stating its identifier, which LaunchServices validates where it lies (/Applications, ~/Applications; not a temporary directory) - any other process posts nothing. The first one asks the user's permission once, without waiting for it; refused, nothing shows. The lines of a burst - an exception's report - are one notification titled with the app's name, posted once the stream stood still for half a second; the end posts what is pending and waits for every post to arrive, at most two seconds |
| Cdx::redirect::notification | Stream's lines as the user's notifications, beside its other sinks: the app's, grouped by the stream |
| Cdx::redirect::platform::notification | User's notifications on UNUserNotificationCenter: an app's alone - a bundle stating its identifier, which LaunchServices validates where it lies (/Applications, ~/Applications; not a temporary directory) - any other process posts nothing. The first one asks the user's permission once, without waiting for it; refused, nothing shows. The lines of a burst - an exception's report - are one notification titled with the app's name, posted once the stream stood still for half a second; the end posts what is pending and waits for every post to arrive, at most two seconds |
| 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::stream::device<super_device_t, _engine_t>::has_license<type_t, decltype((void) type_t::license, void())> | |
| Cstd::tuple | |
| Cdx::select<parsers_t> | Select from aggregated drivers |
| Cstream::driver<super_device_t, device<super_device_t>, proxy::stream::driver<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 |
| Cstream::driver<super_device_t, stream::device<super_device_t>, dx::virtuel::driver<stream::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 |
| Cstream::driver<super_device_t, stream::device<super_device_t>, proxy::stream::driver<stream::device<super_device_t>>> | |
| Cdx::test::usb::driver<super_device_t, device_t, driver_t> | Raw USB commands beside the generic ones: every hub's periodic bus time |
| 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::client | |
| Cdxd::streaming::device<super_device_t, desc_t, clock_server_t>::client | Control client: the platform's client with this device's streaming state |
| Csuper_device_t | |
| Cdx::service::peer<super_device_t> | |
| Cdx::stream::device<super_device_t, desc_t, stream_t, group_t> | |
| Cdxd::streaming::device<usb::device<super_device_t>, desc_t, clock_server<super_device_t, desc_t>> | |
| Cdxd::usb::stream::device<super_device_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<super_device_t, desc_t, clock_server<super_device_t, desc_t>> | |
| Cdxd::virtuel::stream::device<super_device_t, desc_t> | Virtual streaming device: an autonomous tick source drives its single clock domain, the endpoints above it move on the lines it advanced |
| Cdx::service::device<super_device_t> | Device the service hosts, served under <product id>/<puuid> as a kernel driver serves its device: a peer per client connection, its IOCTLs landing in ioctl() |
| Cdx::service::stream::device<super_device_t> | Streaming device the service hosts: its rings the service's, in shared memory, a client a participant in them |
| 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::test::device<super_device_t> | Test harness's device: the bus device plus its command line parser - a derived device adds its commands to the parser's |
| Cdxd::streaming::device<super_device_t, desc_t, clock_server_t> | Generic streaming device: the control interface every bus's clients share |
| 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> | 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_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 |