view editor/edmain.h @ 2576:812b16ee49db

I had been living under apparent false impression that "realfft.c" on which the FFT implementation in DMLIB was basically copied from was released in public domain at some point, but it could very well be that it never was. Correct license is (or seems to be) GNU GPL. Thus I removing the code from DMLIB, and profusely apologize to the author, Philip Van Baren. It was never my intention to distribute code based on his original work under a more liberal license than originally intended.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 11 Mar 2022 16:32:50 +0200
parents e2ac08228a0f
children
line wrap: on
line source

#ifndef EDMAIN_H
#define EDMAIN_H

// Program name etc
#define PROGRAM_NAME      "DMPE Editor"
#define PROGRAM_VERSION   "0.1"

// Defaults
#define DOC_DEF_FILENAME  "Untitled"
#define DOC_UNDO_MAX	  15

enum
{
    CTRL_REWIND,
    CTRL_PLAY_START,
    CTRL_PLAY_CURRENT,
    CTRL_PAUSE
};

#define CTRL_ICON_SIZE   32

#include "edtlobj.h"
#include "edview.h"
#include "edwaveform.h"
#include "edtimeline.h"
#include "edres.h"
#include <QDebug>
#include <QFile>
#include <QApplication>
#include <QMainWindow>
#include <QTableView>
#include <QAction>
#include <QActionGroup>
#include <QSlider>
#include <QMessageBox>
#include <QCheckBox>
#include <QScrollBar>

class DemoEditor : public QMainWindow
{
    Q_OBJECT

public:
    DemoEditor();
    ~DemoEditor();

    void settingsRestore();
    void settingsSave();


private slots:
    void actionFileNew();
    void actionFileOpen();
    void actionFileSave();
    void actionFileSaveAs();

    void actionAboutBox();
    
    //void actionCut();
    //void actionCopy();
    //void actionPaste();
    //void actionDelete();
    
    void performUndo();
    void performRedo();

    void actionControlChanged(QAction *);
    void actionTimelineScrollChanged(int);
    void actionOffsetChanged(float);
    void actionTimeChanged(float);
    void actionTimelineChanged();

private:
    QAction *menuActUndo, *menuActRedo, *menuActOpen, *menuActSave, *menuActSaveAs;
//    QAction *menuActCut, *menuActCopy, *menuActPaste, *menuActDelete;
    QActionGroup *actGroupControls;
    QScrollBar *timelineScrollBar;
    QTableView *resourceView;
    QEDResourceModel *resourceModel;
    QEDWaveTrackView *timelineAudioTrack;
    QEDTimelineView *timelineView;
    QEDGLDemoView *demoView;
    
    

    QAction * createToolButton(QActionGroup *group, QString name, QIcon icon, QString statustip, QVariant data);
    QAction * createMenuAction(QString name, const QKeySequence &shortcut, QString tooltip);
    QAction * createMenuGroupAction(QMenu *, QActionGroup *, QString name, const QKeySequence &shortcut, QString tooltip, QVariant data);
    void setActionGroupChecked(QActionGroup *group, QVariant data);


    void showFileErrorDialog(QString operation, int code);
    QMessageBox::StandardButton showDocumentModifiedDialog();
    void statusMsg(QString message);
    void closeEvent(QCloseEvent *event);
    void createMainGUI();
    void updateResourceView();
    void updateMenuStates();
    void updateTimelineView();

    int initEffectsAndResources();
    void shutdownEffectsAndResources();
    void rehash();
    int reopenResources();
    int loadResources();
    bool initializeVideo();
    int getTimelineDuration();    

    void createNewFile();
    void readFromFile(QString filename);
    void saveToFile(QString filename);


    bool initSDL;
    float currViewScale;
    int currViewOffset;
    int currFrameTime;

    EDTimelineObject *currTimeline;
    DMEngineData engine;

    QList<EDTimelineObject *> undoHistory;
    int undoHistoryPos, undoHistoryMax;

    void historyReset();
    void historyPush(QString description);
    void historyTop();
    void historyPop();
};


#endif // EDMAIN_H