mirror of
https://github.com/isledecomp/SIEdit.git
synced 2025-04-22 01:23:32 -04:00
app: use heuristic to detect phonemes
This commit is contained in:
parent
1bf42f72b0
commit
c7bfceaaa2
2 changed files with 31 additions and 13 deletions
app/viewer
|
@ -4,6 +4,7 @@
|
|||
#include <QDateTime>
|
||||
#include <QDebug>
|
||||
#include <QGroupBox>
|
||||
#include <QMenu>
|
||||
#include <QMouseEvent>
|
||||
|
||||
MediaPanel::MediaPanel(QWidget *parent) :
|
||||
|
@ -29,17 +30,10 @@ MediaPanel::MediaPanel(QWidget *parent) :
|
|||
|
||||
auto preview_layout = new QVBoxLayout(wav_group);
|
||||
|
||||
m_vflipCheckbox = new QCheckBox(tr("Flip Vertically"));
|
||||
connect(m_vflipCheckbox, &QCheckBox::toggled, this, [this](bool e){
|
||||
m_vflip = e;
|
||||
SliderMoved(m_PlayheadSlider->value());
|
||||
});
|
||||
m_vflipCheckbox->setVisible(false);
|
||||
//vflip_checkbox->setAlignment(Qt::AlignCenter);
|
||||
preview_layout->addWidget(m_vflipCheckbox);
|
||||
|
||||
m_ImgViewer = new QLabel();
|
||||
m_ImgViewer->setAlignment(Qt::AlignCenter);
|
||||
m_ImgViewer->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(m_ImgViewer, &QWidget::customContextMenuRequested, this, &MediaPanel::LabelContextMenuTriggered);
|
||||
preview_layout->addWidget(m_ImgViewer);
|
||||
|
||||
auto wav_layout = new QHBoxLayout();
|
||||
|
@ -230,7 +224,9 @@ void MediaPanel::OnOpeningData(void *data)
|
|||
}
|
||||
|
||||
if (m_VideoCodecCtx) {
|
||||
m_vflipCheckbox->setVisible(true);
|
||||
// Heuristic to flip phoneme flics vertically
|
||||
m_vflip = (o->name().find("_Pho_") != std::string::npos);
|
||||
|
||||
VideoUpdate(0);
|
||||
}
|
||||
}
|
||||
|
@ -294,8 +290,7 @@ void MediaPanel::Close()
|
|||
|
||||
m_ImgViewer->setPixmap(QPixmap());
|
||||
|
||||
m_vflipCheckbox->setChecked(false);
|
||||
m_vflipCheckbox->setVisible(false);
|
||||
m_vflip = false;
|
||||
}
|
||||
|
||||
void MediaPanel::VideoUpdate(float t)
|
||||
|
@ -536,6 +531,11 @@ void MediaPanel::TimerUpdate()
|
|||
}
|
||||
}
|
||||
|
||||
void MediaPanel::UpdateVideo()
|
||||
{
|
||||
SliderMoved(m_PlayheadSlider->value());
|
||||
}
|
||||
|
||||
void MediaPanel::SliderPressed()
|
||||
{
|
||||
m_SliderPressed = true;
|
||||
|
@ -567,6 +567,21 @@ void MediaPanel::AudioStateChanged(QAudio::State state)
|
|||
}
|
||||
}
|
||||
|
||||
void MediaPanel::LabelContextMenuTriggered(const QPoint &pos)
|
||||
{
|
||||
QMenu m(this);
|
||||
|
||||
auto vert_flip = m.addAction(tr("Flip Vertically"));
|
||||
vert_flip->setCheckable(true);
|
||||
vert_flip->setChecked(m_vflip);
|
||||
connect(vert_flip, &QAction::triggered, this, [this](bool e){
|
||||
m_vflip = e;
|
||||
UpdateVideo();
|
||||
});
|
||||
|
||||
m.exec(static_cast<QWidget*>(sender())->mapToGlobal(pos));
|
||||
}
|
||||
|
||||
MediaAudioDevice::MediaAudioDevice(MediaPanel *o) :
|
||||
QIODevice(o)
|
||||
{
|
||||
|
|
|
@ -71,7 +71,6 @@ private:
|
|||
QByteArray m_AudioBuffer;
|
||||
AVSampleFormat m_AudioOutputSampleFmt;
|
||||
QSlider *m_PlayheadSlider;
|
||||
QCheckBox *m_vflipCheckbox;
|
||||
QPushButton *m_PlayBtn;
|
||||
QTimer *m_PlaybackTimer;
|
||||
qint64 m_PlaybackStart;
|
||||
|
@ -85,12 +84,16 @@ private slots:
|
|||
|
||||
void TimerUpdate();
|
||||
|
||||
void UpdateVideo();
|
||||
|
||||
void SliderPressed();
|
||||
void SliderMoved(int i);
|
||||
void SliderReleased();
|
||||
|
||||
void AudioStateChanged(QAudio::State state);
|
||||
|
||||
void LabelContextMenuTriggered(const QPoint &pos);
|
||||
|
||||
};
|
||||
|
||||
class MediaAudioDevice : public QIODevice
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue