48 lines
1.3 KiB
C++
48 lines
1.3 KiB
C++
|
#pragma once
|
||
|
#include <gtkmm.h>
|
||
|
#include "my_slider.hpp"
|
||
|
#include "options_window.hpp"
|
||
|
#include <playback.h>
|
||
|
class MainWindow : public Gtk::ApplicationWindow {
|
||
|
Gtk::Button openBtn;
|
||
|
Gtk::Button settingsBtn;
|
||
|
OptionsWindow optionsWindow;
|
||
|
Gtk::HeaderBar headerBar;
|
||
|
Gtk::Box topToolbar;
|
||
|
Gtk::Frame dropSpace;
|
||
|
Glib::RefPtr<Gtk::DropTarget> dropTarget;
|
||
|
Gtk::Label dropSpaceLabel;
|
||
|
Gtk::Button pause_btn;
|
||
|
Gtk::Button restart_btn;
|
||
|
Gtk::Label time_label;
|
||
|
Gtk::Scale seek_bar;
|
||
|
Gtk::Label seek_indeterminate;
|
||
|
Gtk::Label length_label;
|
||
|
Gtk::Button stop_btn;
|
||
|
Gtk::FileChooserDialog open_dialog;
|
||
|
MySlider volume_slider;
|
||
|
MySlider speed_slider;
|
||
|
MySlider tempo_slider;
|
||
|
MySlider pitch_slider;
|
||
|
Gtk::Box top_box;
|
||
|
Gtk::Box bottom_box;
|
||
|
Gtk::Box main_box;
|
||
|
bool paused;
|
||
|
std::optional<std::string> playback_file;
|
||
|
double length;
|
||
|
uint8_t length_component_count;
|
||
|
std::string song_name;
|
||
|
void update_file(optional<std::string> new_file);
|
||
|
bool update();
|
||
|
void set_song_loaded(bool loaded);
|
||
|
uint16_t expected_signals = PlaybackSignalNone;
|
||
|
void expect_signal(uint16_t signal);
|
||
|
public:
|
||
|
Playback *playback;
|
||
|
bool running;
|
||
|
bool timer_stopped;
|
||
|
GCond *timer_stopped_condition;
|
||
|
GMutex *timer_mutex;
|
||
|
MainWindow(Playback *playback);
|
||
|
~MainWindow();
|
||
|
};
|