dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::gui Namespace Reference

the control panel's widgets over JUCE: each one takes the value it edits and a listener, writes the device's desc back on a change and follows the desc when something else changes it - so a panel is composed of these, never of event handling of its own More...

Classes

class  aggregate
 several widgets in one row, each at its own width - what a tree item's line is built from More...
class  bar
 a row of buttons laid out left to right, each sized to its text, with one listener for all of them More...
class  box
 a drop down whose items are either ids or their text, depending on what the edited value is More...
class  button
 a button, toggling where a listener is given More...
class  checkbox
 a check box for one boolean of the desc More...
class  component_size_pair
 a widget with the width its content needs: negative takes it from the right, zero takes what is left More...
class  cpl
 the control panel application: one window holding the driver's device tree, every device a branch of it. The driver itself is a base of the tree view below, so a device arriving on the bus adds its line - marshalled onto the message thread More...
class  device
 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...
class  direction
 a stream's direction: every direction to choose from where the device has an editable desc, the current one alone where it has not More...
class  exception_dialog
 dx::gui::exception_dialog wxWidgets counterpart of the juce interface's exception hierarchy dialog: shows a dx::exception and its chain of causes (frame, comment, what()+error code, file:line, function) as a navigable tree, instead of collapsing it into a single message string. More...
class  file
 the given vendor/product-relative path, in the platform's standard app data location More...
class  image
 an image from a file or a resource, scaled into its place More...
class  item
 one line of the device tree: its widget is created when the line becomes visible and dropped with it More...
class  label
 a text field, editable where a listener is given More...
class  looknfeel
 dx::gui::looknfeel Approximates the juce interface's dark/light colour scheme on the containers wx lets us recolour (frame/panel/splitter backgrounds, the tree, and - via colour inheritance - future field labels) without fighting native control rendering. Buttons, combo boxes, checkboxes and text fields are deliberately left to render as the platform normally would: recolouring native controls fights macOS's own dark-mode appearance, whereas juce draws every control itself and so can commit to one look on every platform. More...
class  power2
 a drop down of powers of two within a range - a buffer size or a channel count, with the values between the powers offered as well where asked for More...
class  text
 dx::gui::text An editable single line text field, committing on Enter or on losing focus. More...

Functions

template<typename device_t>
void commit (device_t &device)
 dx::gui::commit Writes device's desc back through its promoted::property (persisting the edit and notifying listeners) - but only for device_t::super types that actually expose a writable desc (hardware-enumerated devices are read-only; user creatable/POD devices are not). A no-op otherwise, matching the juce interface's requires{...device_t.desc...} gate on every field edit.
template<typename item_t, typename value_t>
void power2 (box< item_t > &box, const value_t &value, const uint32_t(&range)[2]={1, 2048}, uint32_t granularity=1, bool inbetween=true)
 dx::gui::power2 Fills a box<item_t> with the power-of-2 (plus in-between) values valid in [range[0], range[1]] * granularity, and selects the current value.
wxWindow * row (wxWindow *parent, std::vector< std::function< wxWindow *(wxWindow *)> > controls)
 dx::gui::row Lays a handful of controls out on one horizontal line - the wx counterpart of the juce interface's dx::gui::aggregate<component_t...>: a dense row such as "[audio][MIDI] resolution: [32] bit [float] in [4] byte ...", built from factories so every control gets the row panel as its wx parent.
std::function< wxWindow *(wxWindow *)> text_of (const wxString &value)

Detailed Description

the control panel's widgets over JUCE: each one takes the value it edits and a listener, writes the device's desc back on a change and follows the desc when something else changes it - so a panel is composed of these, never of event handling of its own

the control panel's widgets over wxWidgets - the same panel as the JUCE variant builds, widget for widget, so a product picks its toolkit and nothing else changes

Function Documentation

◆ commit()

template<typename device_t>
void dx::gui::commit ( device_t & device)

dx::gui::commit Writes device's desc back through its promoted::property (persisting the edit and notifying listeners) - but only for device_t::super types that actually expose a writable desc (hardware-enumerated devices are read-only; user creatable/POD devices are not). A no-op otherwise, matching the juce interface's requires{...device_t.desc...} gate on every field edit.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ power2()

template<typename item_t, typename value_t>
void dx::gui::power2 ( box< item_t > & box,
const value_t & value,
const uint32_t(&) range[2] = {1, 2048},
uint32_t granularity = 1,
bool inbetween = true )

dx::gui::power2 Fills a box<item_t> with the power-of-2 (plus in-between) values valid in [range[0], range[1]] * granularity, and selects the current value.

◆ row()

wxWindow * dx::gui::row ( wxWindow * parent,
std::vector< std::function< wxWindow *(wxWindow *)> > controls )
inline

dx::gui::row Lays a handful of controls out on one horizontal line - the wx counterpart of the juce interface's dx::gui::aggregate<component_t...>: a dense row such as "[audio][MIDI] resolution: [32] bit [float] in [4] byte ...", built from factories so every control gets the row panel as its wx parent.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ text_of()

std::function< wxWindow *(wxWindow *)> dx::gui::text_of ( const wxString & value)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

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