MainWindow.h 2.51 KB
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QAction>
#include <QActionGroup>
#include <QMenu>
#include <QModelIndex>

#include <armadillo>

#include "Segment.h"
#include "VideoPlayer.h"
#include "ProjectModel.h"
#include "ModelView.h"

class MainWindow: public QMainWindow
{
  Q_OBJECT

 public:
  MainWindow(QWidget *parent = 0);
  ~MainWindow();

  public slots:
    bool newProject();
    bool openProject();
    bool saveProject();
    bool closeProject();
    bool appendProject();
    bool addSubtitles();
    bool quitTool();
    bool showHisto();
    bool extractShots();
    bool detectSimShots();
    bool spkDiar();
    void addShot(Segment *segment);
    void delShot(Segment *segment);
    void editSimShots(Segment *segment);
    void shotSimAnnotation(bool checked);
    void selectVideoFrameLevel();
    void selectShotLevel();
    void selectSceneLevel();
    void shotAnnotation(bool checked);
    void modelChanged();
    void viewSegmentation();
    void viewLocSpkDiar(bool checked);
    void exportSubtitles();

 signals:
    void activeHisto(bool histoDisp);
    void insertShot(Segment *segment, Segment::Source source);
    void removeShot(Segment *segment, Segment::Source source);
    void showVignette(bool showed);
    void processSegmentation(bool checked, bool annot);
    void extractSubtitles(const QString &fName);
    void viewUtteranceTree(bool checked);
    void setDiarData(const arma::mat &E, const arma::mat &Sigma, const arma::mat &W);
    void extractIVectors(bool ubm, const QString &epFName);
    void extractSpkIVectors(const QString &epFName, bool refSpk);
    
 private:
  void createActions();
  void createMenus();
  void updateActions();
  void selectDefaultLevel();
  
  QAction *m_newProAct;
  QAction *m_proOpenProAct;
  QAction *m_saveProAct;
  QAction *m_closeProAct;
  QAction *m_quitAct;
  QAction *m_appendProAct;
  QAction *m_addSubAct;
  QAction *m_histoAct;
  QAction *m_viewSegmentAct;
  QAction *m_viewSpeakersAct;
  QAction *m_viewLocSpkDiarAct;
  QAction *m_vFrameLevelAct;
  QAction *m_shotLevelAct;
  QAction *m_sceneLevelAct;
  QAction *m_manShotAct;
  QAction *m_autShotAct;
  QAction *m_spkDiarAct;
  QAction *m_manShotSimAct;
  QAction *m_simShotDetectAct;
  QAction *m_speechSegAct;
  QAction *m_exportSubAct;
  QAction *m_exportSpkRefAct;

  QActionGroup *m_granularityGroup;
 
  QMenu *m_annotationsMenu;

  bool m_proOpen;
  bool m_proModified;
  bool m_histoDisp;

  VideoPlayer *m_videoPlayer;
  
  ProjectModel *m_project;
  ModelView *m_modelView;
};

#endif