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

a device as a branch of the panel's tree: its name and icon on the line, its streams, clock, buffer size and clients below - every widget bound to the desc, which the device writes back when one of them changes 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
 who has the device open, one line per client, following the device's promoted client map More...
class  clock
 the clock domain's branch: the sample rate to choose from what the desc offers, and the rates themselves editable where the device allows it More...
class  iosize
 the buffer size in samples, offered between the desc's limits and aligned to the clock's interval More...
class  stream
 one stream's line: its name, its direction and its channel count, with a line per pin below More...

Public Types

typedef device_t super

Public Member Functions

item * addItem (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): ""}
item * outline {}

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 >

a device as a branch of the panel's tree: its name and icon on the line, its streams, clock, buffer size and clients below - every widget bound to the desc, which the device writes back when one of them changes

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:
Here is the caller 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.