zero_copy_video_player/mainwindow.h
2026-08-05 08:56:00 -03:00

65 lines
1.7 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QSlider>
#include <QPushButton>
#include <QLabel>
#include <QCheckBox>
#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