Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
track_input_expander.h
1// SPDX-FileCopyrightText: © 2019-2020, 2023-2024 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#ifndef __GUI_WIDGETS_TRACK_INPUT_EXPANDER_H__
5#define __GUI_WIDGETS_TRACK_INPUT_EXPANDER_H__
6
7#include "common/utils/types.h"
8#include "gui/backend/gtk_widgets/gtk_wrapper.h"
9#include "gui/backend/gtk_widgets/two_col_expander_box.h"
10
11#define TRACK_INPUT_EXPANDER_WIDGET_TYPE \
12 (track_input_expander_widget_get_type ())
13G_DECLARE_FINAL_TYPE (
14 TrackInputExpanderWidget,
15 track_input_expander_widget,
16 Z,
17 TRACK_INPUT_EXPANDER_WIDGET,
18 TwoColExpanderBoxWidget);
19
20class ChannelTrack;
21TYPEDEF_STRUCT_UNDERSCORED (EditableLabelWidget);
22TYPEDEF_STRUCT_UNDERSCORED (KnobWidget);
23
29
30using TrackInputExpanderWidget = struct _TrackInputExpanderWidget
31{
32 TwoColExpanderBoxWidget parent_instance;
33
35 GtkDropDown * midi_input;
36
38 GtkDropDown * stereo_l_input;
39
41 GtkDropDown * stereo_r_input;
42
44 GtkDropDown * midi_channels;
45
47 GtkSizeGroup * audio_input_size_group;
48
50 GtkToggleButton * mono;
51
53 GtkBox * gain_box;
54 KnobWidget * gain;
55
57 ChannelTrack * track;
58};
59
65void
66track_input_expander_widget_refresh (
67 TrackInputExpanderWidget * self,
68 ChannelTrack * track);
69
73void
75 TrackInputExpanderWidget * self,
76 ChannelTrack * track);
77
81
82#endif
void track_input_expander_widget_setup(TrackInputExpanderWidget *self, ChannelTrack *track)
Sets up the TrackInputExpanderWidget.
struct _KnobWidget { GtkWidget parent_instance; KnobType type; GenericFloatGetter getter; GenericFloatGetter default_getter; GenericFloatGetter snapped_getter; GenericFloatSetter setter; GenericFloatSetter init_setter; GenericFloatSetter end_setter; GenericStringGetter hover_str_getter; void *object; int size; bool hover; float zero; bool arc; int bevel; bool flat; float min; float max; GdkRGBA start_color; GdkRGBA end_color; GtkGestureDrag *drag; double last_x; double last_y; bool drag_updated; PangoLayout *layout; float last_real_val; GtkPopoverMenu *popover_menu;} KnobWidget
Basic knob widget.
Definition knob.h:37