Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
export_dialog.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2018-2022 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
9
10#ifndef __GUI_WIDGETS_EXPORT_DIALOG_H__
11#define __GUI_WIDGETS_EXPORT_DIALOG_H__
12
13#include "common/dsp/position.h"
14#include "gui/backend/gtk_widgets/gtk_wrapper.h"
15#include "gui/backend/gtk_widgets/item_factory.h"
16#include "gui/backend/gtk_widgets/libadwaita_wrapper.h"
17
18#define EXPORT_DIALOG_WIDGET_TYPE (export_dialog_widget_get_type ())
19G_DECLARE_FINAL_TYPE (
21 export_dialog_widget,
22 Z,
23 EXPORT_DIALOG_WIDGET,
24 GtkDialog)
25
26typedef struct _DigitalMeterWidget DigitalMeterWidget;
27
33
34enum class ExportFilenamePattern
35{
36 EFP_APPEND_FORMAT,
37 EFP_PREPEND_DATE_APPEND_FORMAT,
38};
39
43using ExportDialogWidget = struct _ExportDialogWidget
44{
45 GtkDialog parent_instance;
46
47 AdwViewSwitcherTitle * title;
48 AdwViewStack * stack;
49
50 /* audio */
51 AdwEntryRow * audio_title;
52 AdwEntryRow * audio_artist;
53 AdwEntryRow * audio_genre;
54 AdwComboRow * audio_format;
55 AdwComboRow * audio_bit_depth;
56 AdwActionRow * audio_dither;
57 GtkSwitch * audio_dither_switch;
58 AdwComboRow * audio_filename_pattern;
59 AdwComboRow * audio_mixdown_or_stems;
60 AdwComboRow * audio_time_range_combo;
61 AdwActionRow * audio_custom_tr_row;
62 GtkBox * audio_custom_tr_start_meter_box;
63 DigitalMeterWidget * audio_custom_tr_start_meter;
64 Position audio_custom_start_pos;
65 GtkBox * audio_custom_tr_end_meter_box;
66 DigitalMeterWidget * audio_custom_tr_end_meter;
67 Position audio_custom_end_pos;
68 GtkColumnView * audio_tracks_view;
69 GtkLabel * audio_output_label;
70 ItemFactoryPtrVector audio_item_factories;
71
72 /* MIDI */
73 AdwEntryRow * midi_title;
74 AdwEntryRow * midi_artist;
75 AdwEntryRow * midi_genre;
76 AdwComboRow * midi_format;
77 GtkSwitch * midi_export_lanes_as_tracks_switch;
78 AdwComboRow * midi_filename_pattern;
79 AdwComboRow * midi_mixdown_or_stems;
80 AdwComboRow * midi_time_range_combo;
81 AdwActionRow * midi_custom_tr_row;
82 GtkBox * midi_custom_tr_start_meter_box;
83 DigitalMeterWidget * midi_custom_tr_start_meter;
84 Position midi_custom_start_pos;
85 GtkBox * midi_custom_tr_end_meter_box;
86 DigitalMeterWidget * midi_custom_tr_end_meter;
87 Position midi_custom_end_pos;
88 GtkColumnView * midi_tracks_view;
89 GtkLabel * midi_output_label;
90 ItemFactoryPtrVector midi_item_factories;
91};
92
98
102
103#endif
ExportDialogWidget * export_dialog_widget_new(void)
Creates an export dialog widget and displays it.
struct _ExportDialogWidget { GtkDialog parent_instance; AdwViewSwitcherTitle *title; AdwViewStack * stack; AdwEntryRow * audio_title; AdwEntryRow * audio_artist; AdwEntryRow * audio_genre; AdwComboRow * audio_format; AdwComboRow * audio_bit_depth; AdwActionRow * audio_dither; GtkSwitch * audio_dither_switch; AdwComboRow * audio_filename_pattern; AdwComboRow * audio_mixdown_or_stems; AdwComboRow * audio_time_range_combo; AdwActionRow * audio_custom_tr_row; GtkBox * audio_custom_tr_start_meter_box; DigitalMeterWidget *audio_custom_tr_start_meter; Position audio_custom_start_pos; GtkBox * audio_custom_tr_end_meter_box; DigitalMeterWidget *audio_custom_tr_end_meter; Position audio_custom_end_pos; GtkColumnView * audio_tracks_view; GtkLabel * audio_output_label; ItemFactoryPtrVector audio_item_factories; AdwEntryRow * midi_title; AdwEntryRow * midi_artist; AdwEntryRow * midi_genre; AdwComboRow * midi_format; GtkSwitch * midi_export_lanes_as_tracks_switch; AdwComboRow * midi_filename_pattern; AdwComboRow * midi_mixdown_or_stems; AdwComboRow * midi_time_range_combo; AdwActionRow * midi_custom_tr_row; GtkBox * midi_custom_tr_start_meter_box; DigitalMeterWidget *midi_custom_tr_start_meter; Position midi_custom_start_pos; GtkBox * midi_custom_tr_end_meter_box; DigitalMeterWidget *midi_custom_tr_end_meter; Position midi_custom_end_pos; GtkColumnView * midi_tracks_view; GtkLabel * midi_output_label; ItemFactoryPtrVector midi_item_factories;} ExportDialogWidget
The export dialog.