dxd - dynax driver framework 2.6.0d221
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::gui::device< device_t > Class Template Reference

dx::gui::device Mixes an outline presence into a device_t, mirroring the juce interface's nesting one-for-one: device::stream::pin, device::clock::samplerate, device::iosize and device::clients are nested dx::gui::item subclasses here too, each row showing its own controls inline, exactly like the juce TreeView design - the one deviation forced by wx is that every wxWindow needs its parent at construction time, so (unlike juce, which lazily makes a Component once a TreeViewItem becomes visible) device_t's own outline row cannot be built inside its constructor: the generic driver/map machinery constructs device_t itself, before any wx parent window exists. attach() below is therefore called once by the driver, once a wx parent is available, and builds the outline from that point on exactly as juce's device::update() does. More...

#include <dx_gui_device.h>

Inheritance diagram for dx::gui::device< device_t >:
Collaboration diagram for dx::gui::device< device_t >:

Classes

class  clients
 dx::gui::device::clients Detail row listing the processes currently holding this device open. Closed by default, matching juce, and kept live via device.clients.listen. More...
class  clock
 dx::gui::device::clock Detail row of a clock domain: current samplerate, nested (closed by default, matching juce) beneath the set of rates it is allowed to run at. More...
class  iosize
 dx::gui::device::iosize Detail row of the device's streaming I/O block size, bounded by the primary clock's supported range and quantised to its tick interval. Closed by default, matching juce. More...
class  stream
 dx::gui::device::stream Detail row of a stream: bidirectional/in/out, channel count, sync-reference eligibility and pin count; rebuilds its dx::gui::device::stream::pin child rows when the pin count changes. More...

Public Types

typedef device_t super

Public Member Functions

itemaddItem (std::function< wxWindow *(wxWindow *)> &&content, bool subitems=false, bool open=true)
void addSeparator ()
void adopt (item *child)
void attach (wxWindow *parent, std::function< void()> &&destroy)
void build ()
wxString caption () const
wxWindow * children () const
void clearItems ()
wxWindow * content () const
template<typename driver_t, typename ... type_t>
 device (driver_t &driver, decltype(super::id)&id, type_t... args)
template<typename driver_t, typename ... type_t>
 device (driver_t &driver, decltype(super::id)&id, type_t... args)
void forget (item *child)
void launch () override

Public Attributes

image image {this->icon? static_cast<const std::string&>(this->icon): ""}
itemoutline {}

Static Public Attributes

static constexpr auto pod = true

Protected Member Functions

std::unique_ptr< juce::Component > createItemComponent () override
void update ()

Detailed Description

template<typename device_t>
class dx::gui::device< device_t >

dx::gui::device Mixes an outline presence into a device_t, mirroring the juce interface's nesting one-for-one: device::stream::pin, device::clock::samplerate, device::iosize and device::clients are nested dx::gui::item subclasses here too, each row showing its own controls inline, exactly like the juce TreeView design - the one deviation forced by wx is that every wxWindow needs its parent at construction time, so (unlike juce, which lazily makes a Component once a TreeViewItem becomes visible) device_t's own outline row cannot be built inside its constructor: the generic driver/map machinery constructs device_t itself, before any wx parent window exists. attach() below is therefore called once by the driver, once a wx parent is available, and builds the outline from that point on exactly as juce's device::update() does.

Member Typedef Documentation

◆ super

template<typename device_t>
typedef device_t dx::gui::device< device_t >::super

Constructor & Destructor Documentation

◆ device() [1/2]

template<typename device_t>
template<typename driver_t, typename ... type_t>
dx::gui::device< device_t >::device ( driver_t & driver,
decltype(super::id)& id,
type_t... args )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ device() [2/2]

template<typename device_t>
template<typename driver_t, typename ... type_t>
dx::gui::device< device_t >::device ( driver_t & driver,
decltype(super::id)& id,
type_t... args )
inline

Member Function Documentation

◆ addItem()

item * dx::gui::item< aggregate< image, label, button > >::addItem ( std::function< wxWindow *(wxWindow *)> && content,
bool subitems = false,
bool open = true )
inlineinherited

◆ addSeparator()

void dx::gui::item< aggregate< image, label, button > >::addSeparator ( )
inlineinherited

◆ adopt()

void dx::gui::item< aggregate< image, label, button > >::adopt ( item< aggregate< image, label, button > > * child)
inlineinherited

◆ attach()

template<typename device_t>
void dx::gui::device< device_t >::attach ( wxWindow * parent,
std::function< void()> && destroy )
inline
Here is the call graph for this function:

◆ build()

template<typename device_t>
void dx::gui::device< device_t >::build ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ caption()

template<typename device_t>
wxString dx::gui::device< device_t >::caption ( ) const
inline

◆ children()

wxWindow * dx::gui::item< aggregate< image, label, button > >::children ( ) const
inlineinherited

◆ clearItems()

void dx::gui::item< aggregate< image, label, button > >::clearItems ( )
inlineinherited

◆ content()

wxWindow * dx::gui::item< aggregate< image, label, button > >::content ( ) const
inlineinherited

◆ createItemComponent()

std::unique_ptr< juce::Component > dx::gui::item< aggregate< image, label, button > >::createItemComponent ( )
inlineoverrideprotectedinherited

◆ forget()

void dx::gui::item< aggregate< image, label, button > >::forget ( item< aggregate< image, label, button > > * child)
inlineinherited

◆ launch()

template<typename device_t>
void dx::gui::device< device_t >::launch ( )
inlineoverride
Here is the call graph for this function:

◆ update()

template<typename device_t>
void dx::gui::device< device_t >::update ( )
inlineprotected
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ image

template<typename device_t>
image dx::gui::device< device_t >::image {this->icon? static_cast<const std::string&>(this->icon): ""}

◆ outline

template<typename device_t>
item* dx::gui::device< device_t >::outline {}

◆ pod

template<typename device_t>
constexpr auto dx::gui::device< device_t >::pod = true
staticconstexpr

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

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