dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx_usb_stream_pipe.h File Reference
#include "dx_stream_stream.h"
#include "dx_usb_stream_group.h"
#include "dx_usb_device.h"
#include "dx_usb_platform_pipe.h"
#include "dx_usb_isoc.h"
#include <format>
Include dependency graph for dx_usb_stream_pipe.h:
This graph shows which files directly or indirectly include this file:

Classes

class  dx::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. More...
struct  dx::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 More...
struct  dx::usb::stream::pipe< device_t, circular_t, stream_t >::cache::encoder
struct  dx::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 More...

Namespaces

namespace  dx
 dynax driver framework interface namespace
namespace  dx::usb
 USB user mode interface namespace.
namespace  dx::usb::stream
 USB user mode streaming interface namespace.

Macros

#define dx_usb_stream_pipe_log

Macro Definition Documentation

◆ dx_usb_stream_pipe_log

#define dx_usb_stream_pipe_log
Value:
if (this->device.driver.log.bus.operation>= log::level::debug||\
this->device.driver.log.streaming.operation>= log::level::debug){\
auto linesize= super::cache.linesize;\
std::lock_guard lock{io_mutex};\
std::clog<< \
" "<< class_name<<\
"<"<< std::hex << static_cast<int>(this->desc::target.address)<<\
">::"<< __func__<<\
" status:"<< status<< std::dec<<\
(status? std::string{" "}+ describe(status): "")<<\
" started:"<< this->started<<\
" size:"<< size<<\
" rx:"<< this->circular->rx/ linesize<<\
" tx:"<< this->circular->tx/ linesize<<\
" empty:"<< this->circular->empty()/ linesize<<\
" this->circular size:"<< this->circular->size/ linesize<<\
" cycle:"<< this->circular->cycle.count<<\
" [submit:"<< async.submit<<\
" complete:"<< async.completion<<\
" status:"<< std::hex<< async.status<< std::dec<<\
(async.status? std::string{" "}+ describe(async.status): "")<<\
"]"<< std::endl;\
}
type< const char * > string
Definition cf_string.h:134
@ rx
set/get RX stream safety_offset
Definition macOS/dx_platform.h:151
@ tx
set/get TX stream safety_offset
Definition macOS/dx_platform.h:150
const char * describe(const ::GUID &guid)
Definition dxd_portcls_audio.h:92
@ async
Definition wdk/dxd_platform.h:248

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

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