Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
live_waveform.h
1// SPDX-FileCopyrightText: © 2019, 2023-2024 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#ifndef __GUI_WIDGETS_LIVE_WAVEFORM_H__
5#define __GUI_WIDGETS_LIVE_WAVEFORM_H__
6
7#include "gui/backend/gtk_widgets/gtk_wrapper.h"
8
9#include "juce_wrapper.h"
10
11#define LIVE_WAVEFORM_WIDGET_TYPE (live_waveform_widget_get_type ())
12G_DECLARE_FINAL_TYPE (
14 live_waveform_widget,
15 Z,
16 LIVE_WAVEFORM_WIDGET,
17 GtkDrawingArea)
18
19class AudioPort;
20
26
27enum class LiveWaveformType
28{
29 LIVE_WAVEFORM_ENGINE,
30 LIVE_WAVEFORM_PORT,
31};
32
36using LiveWaveformWidget = struct _LiveWaveformWidget
37{
38 GtkDrawingArea parent_instance;
39
40 LiveWaveformType type;
41
43 int draw_border;
44
45 std::unique_ptr<juce::AudioSampleBuffer> buffer;
46
48 AudioPort * port;
49};
50
54void
56
62
66
67#endif
LiveWaveformWidget * live_waveform_widget_new_port(AudioPort *port)
Creates a LiveWaveformWidget for a port.
void live_waveform_widget_setup_engine(LiveWaveformWidget *self)
Creates a LiveWaveformWidget for the AudioEngine.
struct _LiveWaveformWidget { GtkDrawingArea parent_instance; LiveWaveformType type; int draw_border; std::unique_ptr< juce::AudioSampleBuffer > buffer; AudioPort *port;} LiveWaveformWidget
Live waveform display like LMMS.