Zrythm
v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
automatable_selector_popover.h
1
// SPDX-FileCopyrightText: © 2019, 2023-2024 Alexandros Theodotou <alex@zrythm.org>
2
// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4
#ifndef __GUI_WIDGETS_AUTOMATABLE_SELECTOR_POPOVER_H__
5
#define __GUI_WIDGETS_AUTOMATABLE_SELECTOR_POPOVER_H__
6
7
#include "common/utils/types.h"
8
#include "gui/backend/gtk_widgets/gtk_wrapper.h"
9
#include "gui/backend/gtk_widgets/item_factory.h"
10
11
#define AUTOMATABLE_SELECTOR_POPOVER_WIDGET_TYPE \
12
(automatable_selector_popover_widget_get_type ())
13
G_DECLARE_FINAL_TYPE (
14
AutomatableSelectorPopoverWidget
,
15
automatable_selector_popover_widget,
16
Z,
17
AUTOMATABLE_SELECTOR_POPOVER_WIDGET,
18
GtkPopover);
19
20
class
ControlPort;
21
class
AutomationTrack;
22
28
34
enum class
AutomatableSelectorType
35
{
37
AS_TYPE_MIDI_CH1
,
38
AS_TYPE_MIDI_CH2,
39
AS_TYPE_MIDI_CH3,
40
AS_TYPE_MIDI_CH4,
41
AS_TYPE_MIDI_CH5,
42
AS_TYPE_MIDI_CH6,
43
AS_TYPE_MIDI_CH7,
44
AS_TYPE_MIDI_CH8,
45
AS_TYPE_MIDI_CH9,
46
AS_TYPE_MIDI_CH10,
47
AS_TYPE_MIDI_CH11,
48
AS_TYPE_MIDI_CH12,
49
AS_TYPE_MIDI_CH13,
50
AS_TYPE_MIDI_CH14,
51
AS_TYPE_MIDI_CH15,
52
AS_TYPE_MIDI_CH16,
53
55
AS_TYPE_CHANNEL
,
56
58
AS_TYPE_MIDI_FX
,
59
61
AS_TYPE_INSTRUMENT
,
62
64
AS_TYPE_INSERT
,
65
67
AS_TYPE_MODULATOR
,
68
70
AS_TYPE_TEMPO
,
71
73
AS_TYPE_MACRO
,
74
};
75
79
using
AutomatableSelectorPopoverWidget
=
struct
_AutomatableSelectorPopoverWidget
80
{
81
GtkPopover parent_instance;
82
84
AutomationTrack * owner;
85
86
GtkListView * type_listview;
87
GtkListView * port_listview;
88
89
std::unique_ptr<ItemFactory> port_factory;
90
91
GtkLabel * info;
92
93
GtkSearchEntry * port_search_entry;
94
100
ControlPort * selected_port;
101
};
102
106
AutomatableSelectorPopoverWidget
*
107
automatable_selector_popover_widget_new
(AutomationTrack * owner);
108
112
113
#endif
AutomatableSelectorPopoverWidget
struct _AutomatableSelectorPopoverWidget { GtkPopover parent_instance; AutomationTrack *owner; GtkListView *type_listview; GtkListView *port_listview; std::unique_ptr< ItemFactory > port_factory; GtkLabel *info; GtkSearchEntry *port_search_entry; ControlPort *selected_port;} AutomatableSelectorPopoverWidget
A popover for selecting the automation track to automate.
Definition
automatable_selector_popover.h:79
automatable_selector_popover_widget_new
AutomatableSelectorPopoverWidget * automatable_selector_popover_widget_new(AutomationTrack *owner)
Creates the popover.
AutomatableSelectorType
AutomatableSelectorType
Automatable type.
Definition
automatable_selector_popover.h:35
AutomatableSelectorType::AS_TYPE_MIDI_CH1
@ AS_TYPE_MIDI_CH1
Midi automatable (modwheel etc.).
Definition
automatable_selector_popover.h:37
AutomatableSelectorType::AS_TYPE_CHANNEL
@ AS_TYPE_CHANNEL
Channel.
Definition
automatable_selector_popover.h:55
AutomatableSelectorType::AS_TYPE_INSTRUMENT
@ AS_TYPE_INSTRUMENT
Instrument plugin.
Definition
automatable_selector_popover.h:61
AutomatableSelectorType::AS_TYPE_INSERT
@ AS_TYPE_INSERT
Insert plugin.
Definition
automatable_selector_popover.h:64
AutomatableSelectorType::AS_TYPE_MODULATOR
@ AS_TYPE_MODULATOR
Modulator plugin.
Definition
automatable_selector_popover.h:67
AutomatableSelectorType::AS_TYPE_TEMPO
@ AS_TYPE_TEMPO
Tempo track ports.
Definition
automatable_selector_popover.h:70
AutomatableSelectorType::AS_TYPE_MACRO
@ AS_TYPE_MACRO
Modulator macros.
Definition
automatable_selector_popover.h:73
AutomatableSelectorType::AS_TYPE_MIDI_FX
@ AS_TYPE_MIDI_FX
Plugin at Track MIDI fx slot.
Definition
automatable_selector_popover.h:58
src
gui
backend
gtk_widgets
popovers
automatable_selector_popover.h
Generated by
1.15.0