#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include "glwidget.h" #include "videodecoder.h" class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow() override; void openVideoFileDirect(const QString &fileName); private slots: void openVideoFile(); void togglePlayPause(); void toggleMute(); void setVideoPosition(int position); void onPositionChanged(qint64 positionMs); void onPlaybackFinished(); // Slots de actualización de los sliders del Shader void onCrtToggled(bool checked); void onCurvatureChanged(int value); void onScanlineDensityChanged(int value); void onScanlineOpacityChanged(int value); void onAberrationChanged(int value); void onVignetteChanged(int value); void onBrightnessChanged(int value); private: void setupUI(); GLWidget *m_glWidget; VideoDecoder *m_videoDecoder; bool m_updatingSeek; // Elementos de la interfaz multimedia QPushButton *m_playBtn; QPushButton *m_muteBtn; QSlider *m_seekBar; QLabel *m_timeLabel; // Sliders del Shader y sus etiquetas indicadoras QCheckBox *m_crtCheckbox; QSlider *m_curvatureSlider; QLabel *m_curvatureLabel; QSlider *m_scanlineDensitySlider; QLabel *m_scanlineDensityLabel; QSlider *m_scanlineOpacitySlider; QLabel *m_scanlineOpacityLabel; QSlider *m_aberrationSlider; QLabel *m_aberrationLabel; QSlider *m_vignetteSlider; QLabel *m_vignetteLabel; QSlider *m_brightnessSlider; QLabel *m_brightnessLabel; }; #endif // MAINWINDOW_H