#ifndef MAINWINDOW_H
#define MAINWINDOW_H
+#include <memory>
#include <stdbool.h>
#include <sys/types.h>
#include <QMainWindow>
#include <QString>
+#include <QWidget>
#include <chrono>
#include <string>
#include <vector>
#include "audio_mixer.h"
#include "midi_mapper.h"
#include "mixer.h"
+#include "theme.h"
+class QDial;
class QEvent;
class QObject;
class QResizeEvent;
void set_treble(unsigned bus_idx, float value) override;
void set_mid(unsigned bus_idx, float value) override;
void set_bass(unsigned bus_idx, float value) override;
+ void set_eq_absolute(unsigned bus_idx, EQBand eq_band, float value_db);
void set_gain(unsigned bus_idx, float value) override;
void set_compressor_threshold(unsigned bus_idx, float value) override;
void set_fader(unsigned bus_idx, float value) override;
+ void set_fader_absolute(unsigned bus_idx, float value_db); // Used by the theme only.
void toggle_mute(unsigned bus_idx) override;
void toggle_locut(unsigned bus_idx) override;
void update_stereo_label(unsigned bus_index, int stereo_width_percent);
void update_eq_label(unsigned bus_index, EQBand band, float gain_db);
void setup_theme_menu();
+ void fill_menu_from_theme_menu(const std::vector<std::unique_ptr<Theme::MenuEntry>> &entries, QMenu *menu);
void prev_page();
void next_page();
// Called from DiskSpaceEstimator.
- void report_disk_space(off_t free_bytes, double estimated_seconds_left);
+ void report_disk_space(off_t free_bytes, double estimated_seconds_left, double file_length_seconds);
// Called from the mixer.
void audio_level_callback(float level_lufs, float peak_db, std::vector<AudioMixer::BusLevel> bus_levels, float global_level_lufs, float range_low_lufs, float range_high_lufs, float final_makeup_gain_db, float correlation);
template<class T>
void set_relative_value_if_exists(unsigned bus_idx, T *Ui_AudioExpandedView::*control, float value);
+ void set_db_value_if_exists(unsigned bus_idx, QDial *Ui_AudioExpandedView::*control, float value_db);
+
template<class T>
void click_button_if_exists(unsigned bus_idx, T *Ui_AudioExpandedView::*control);