dxd - dynax driver framework 3.0.0d222
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
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 }

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 (priority priority)

Static Protected Member Functions

static unsigned int prio ()
static unsigned int prio ()

Protected Attributes

os_result status

Friends

struct dx::usb::isoc::correlation
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
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

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/3]

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

◆ prio() [2/3]

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

◆ prio() [3/3]

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

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