looper/backends/ui/qt/main_window.h
Zachary Hall 791c5103ea
Some checks failed
Build / download-system-deps (push) Successful in 42s
Build / build-gentoo (push) Failing after 1m5s
Build / get-source-code (push) Successful in 3m50s
Build / build-deb (push) Successful in 5m27s
Build / build-appimage (push) Successful in 1m9s
Build / build-android (push) Failing after 4s
Build / build-windows (push) Failing after 3m45s
Finish cat support
2024-12-23 14:06:11 -08:00

55 lines
1.3 KiB
C++

#pragma once
#include "playback.h"
#include "util.hpp"
#include <QMainWindow>
#include <QSlider>
#include <QWidget>
#include <QPushButton>
#include <QTextEdit>
#include <QBoxLayout>
#include <QMenu>
#include <QTimer>
#include <QFileDialog>
#include <QApplication>
#include <util.hpp>
#include "preferences.h"
#include "aboutwindow.h"
#include "slider.hpp"
class LooperWindow : public QMainWindow {
Q_OBJECT;
bool labels_visible;
bool icons_visible;
LooperSlider *volume_slider;
LooperSlider *speed_slider;
LooperSlider *tempo_slider;
LooperSlider *pitch_slider;
QPixmap *cat_pixmap = NULL;
std::thread *update_thread = nullptr;
bool done = false;
void Pulse();
void ThreadFunc();
const char *file_to_play = nullptr;
QPushButton *restart_btn;
QPushButton *stop_btn;
QPushButton *pause_resume_btn;
Playback *playback;
LooperSlider *slider;
QMenu *file_menu;
QAction *open_item;
QAction *prefs_item;
QAction *quit_item;
QMenu *help_menu;
QAction *about_item;
QFileDialog *file_dialog;
QBoxLayout *root_layout;
QLabel *cat_disp;
void update_label_setting(bool labels_visible, bool icons_visible);
void update_cat(QPixmap &img);
void clear_cat();
protected:
void resizeEvent(QResizeEvent *event) override;
public:
AboutWindow *about_window;
PrefsWindow *prefs_window;
explicit LooperWindow(Playback *playback);
};