Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
bot_bar.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2018-2023 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-FileCopyrightText: © 2024 Miró Allard <miro.allard@pm.me>
3// SPDX-License-Identifier: LicenseRef-ZrythmLicense
4
11#ifndef __GUI_WIDGETS_BOT_BAR_H__
12#define __GUI_WIDGETS_BOT_BAR_H__
13
14#include <gtk/gtk.h>
15#include <libpanel.h>
16
17typedef struct _MidiActivityBarWidget MidiActivityBarWidget;
18typedef struct _LiveWaveformWidget LiveWaveformWidget;
19typedef struct _SpectrumAnalyzerWidget SpectrumAnalyzerWidget;
20typedef struct _DigitalMeterWidget DigitalMeterWidget;
21typedef struct _TransportControlsWidget TransportControlsWidget;
22typedef struct _CpuWidget CpuWidget;
23typedef struct _ButtonWithMenuWidget ButtonWithMenuWidget;
24
31#define BOT_BAR_WIDGET_TYPE (bot_bar_widget_get_type ())
32G_DECLARE_FINAL_TYPE (BotBarWidget, bot_bar_widget, Z, BOT_BAR_WIDGET, GtkWidget)
33
34#define MW_BOT_BAR MW->bot_bar
35#define MW_DIGITAL_TRANSPORT MW_BOT_BAR->digital_transport
36#define MW_DIGITAL_BPM MW_BOT_BAR->digital_bpm
37#define MW_DIGITAL_TIME_SIG MW_BOT_BAR->digital_timesig
38
42typedef struct _BotBarWidget
43{
44 GtkWidget parent_instance;
45
46 GtkCenterBox * center_box;
47 GtkLabel * engine_status_label;
48
49 GtkBox * digital_meters;
50 DigitalMeterWidget * digital_bpm;
51
56 GtkOverlay * playhead_overlay;
57
58 ButtonWithMenuWidget * metronome;
59 GtkToggleButton * metronome_btn;
60
65
67 GtkWidget * master_img;
68
70 GtkWidget * client_img;
71
72 GtkBox * playhead_box;
73
74 LiveWaveformWidget * live_waveform;
75 SpectrumAnalyzerWidget * spectrum_analyzer;
76 MidiActivityBarWidget * midi_activity;
77 GtkLabel * midi_in_lbl;
78 GtkBox * meter_box;
79
80 DigitalMeterWidget * digital_timesig;
81 TransportControlsWidget * transport_controls;
82 CpuWidget * cpu_load;
83
84 PanelToggleButton * bot_dock_switcher;
85
87 char hex_color[8];
88 char green_hex[8];
89 char red_hex[8];
90
92
93void
94bot_bar_widget_refresh (BotBarWidget * self);
95
99void
101
105void
107
112#endif
void bot_bar_widget_update_status(BotBarWidget *self)
Updates the content of the status bar.
void bot_bar_widget_setup(BotBarWidget *self)
Sets up the bot bar.
Bot bar.
Definition bot_bar.h:43
GtkOverlay * playhead_overlay
Overlay for showing things on top of the playhead positionmeter.
Definition bot_bar.h:56
GtkWidget * master_img
Jack timebase master image.
Definition bot_bar.h:67
GtkWidget * client_img
Jack client master image.
Definition bot_bar.h:70
DigitalMeterWidget * digital_transport
The playhead digital meter.
Definition bot_bar.h:64