dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::usb::stream::group< device_t > Class Template Reference

USB isoc streaming group: one bus frame aligned tick per USB frame, the one thread running the pipes' request pipelines and moving their data. More...

#include <dxd_usb_stream.h>

Inheritance diagram for dxd::usb::stream::group< device_t >:
Collaboration diagram for dxd::usb::stream::group< device_t >:

Public Member Functions

 group (device_t &device)
void halt ()
 ends the session: joins the thread, aborts every pipe on its live handle, then resets the group's interfaces to their default alternate setting - a vanished device gets no word past the drain
os_result run (int64_t period)
 create and start the clock thread(autonomous mode)
os_result run ()
 ~group () override
 joins the thread alone: the session ends in conclude(), while the interface cache still stands

Public Attributes

const int64_t period
 dxd::timestamp() units per bus frame

Protected Types

enum class  priority { low = LOW_PRIORITY , realtime = LOW_REALTIME_PRIORITY , high = HIGH_PRIORITY }
 the thread priorities a driver's own thread is raised to More...

Protected Member Functions

void join ()
 the completion event is signalled on launch()'s way out, the thread object only once the thread left the image; the thread itself never joins
os_result prio (prioritypriority prioritypriority)

Static Protected Member Functions

static unsigned int prio ()

Protected Attributes

os_result status

Friends

struct dx::usb::isoc::correlation
struct dx::usb::isoc::session< group >
class pipe< device_t >

Detailed Description

template<typename device_t>
class dxd::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.

Member Enumeration Documentation

◆ priority

enum class dxd::process::priority
stronginherited

the thread priorities a driver's own thread is raised to

Enumerator
low 

Lowest thread priority level.

realtime 

Lowest realtime priority level.

high 

Highest thread priority level.

Constructor & Destructor Documentation

◆ group()

template<typename device_t>
dxd::usb::stream::group< device_t >::group ( device_t & device)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~group()

template<typename device_t>
dxd::usb::stream::group< device_t >::~group ( )
inlineoverride

joins the thread alone: the session ends in conclude(), while the interface cache still stands

Here is the call graph for this function:

Member Function Documentation

◆ halt()

template<typename device_t>
void dxd::usb::stream::group< device_t >::halt ( )
inline

ends the session: joins the thread, aborts every pipe on its live handle, then resets the group's interfaces to their default alternate setting - a vanished device gets no word past the drain

Here is the call graph for this function:

◆ join()

void dxd::process::join ( )
inlineprotectedinherited

the completion event is signalled on launch()'s way out, the thread object only once the thread left the image; the thread itself never joins

Here is the caller graph for this function:

◆ prio() [1/2]

unsigned int dxd::process::prio ( )
inlinestaticinherited

◆ prio() [2/2]

os_result dxd::process::prio ( priority priority)
inlineinherited

◆ run() [1/2]

os_result dxd::clock::run ( int64_t period)
inlineinherited

create and start the clock thread(autonomous mode)

Parameters
periodtick period, 100ns units(see dxd::scale)
Here is the call graph for this function:

◆ run() [2/2]

template<typename device_t>
os_result dxd::usb::stream::group< device_t >::run ( )
inline
Here is the call graph for this function:

◆ dx::usb::isoc::correlation

template<typename device_t>
friend struct dx::usb::isoc::correlation
friend

◆ dx::usb::isoc::session< group >

template<typename device_t>
friend struct dx::usb::isoc::session< group >
friend

◆ pipe< device_t >

template<typename device_t>
friend class pipe< device_t >
friend

Member Data Documentation

◆ period

template<typename device_t>
const int64_t dxd::usb::stream::group< device_t >::period

dxd::timestamp() units per bus frame

◆ status

os_result dxd::process::status
inherited

The documentation for this class was generated from the following file:

(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.