changeset 403:d34922e6a244

Even more work towards the editor.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 19 Oct 2012 21:52:16 +0300
parents 0f290af63fc1
children 1994cc78ce6c
files Makefile.gen edgui.cpp edmain.cpp edmain.h edres.cpp edres.h edtimeline.cpp edtimeline.h edtlobj.cpp edtlobj.h edview.cpp edview.h edwaveform.cpp edwaveform.h
diffstat 14 files changed, 291 insertions(+), 161 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.gen	Fri Oct 19 17:49:22 2012 +0300
+++ b/Makefile.gen	Fri Oct 19 21:52:16 2012 +0300
@@ -23,8 +23,8 @@
 
 EDITOR_PRO = editor.pro
 EDITOR_MAKEFILE = Makefile.editor
-EDITOR_SOURCES = edmain.cpp edgui.cpp edview.cpp edtlobj.cpp edtimeline.cpp edwaveform.cpp
-EDITOR_HEADERS = edmain.h edtlobj.h edview.h edtimeline.h edwaveform.h
+EDITOR_SOURCES = edmain.cpp edgui.cpp edview.cpp edtlobj.cpp edtimeline.cpp edwaveform.cpp edres.cpp
+EDITOR_HEADERS = edmain.h edtlobj.h edview.h edtimeline.h edwaveform.h edres.h
 
 
 ###
--- a/edgui.cpp	Fri Oct 19 17:49:22 2012 +0300
+++ b/edgui.cpp	Fri Oct 19 21:52:16 2012 +0300
@@ -25,10 +25,16 @@
         name = DOC_DEF_FILENAME;
     else
         name = currTimeline->filename;
+    
+    if (currTimeline != NULL)
+    {
+        if (currTimeline->tl != NULL && currTimeline->tl->name != NULL)
+            name += " (" + QString(currTimeline->tl->name) + ")";
 
-    if (currTimeline && currTimeline->touched())
-        name = "*" + name;
-    
+        if (currTimeline->touched())
+            name = "*" + name;
+    }
+
     setWindowTitle(name + " - " + QCoreApplication::applicationName());
 
     // Enable menu items based on states
@@ -449,14 +455,17 @@
 
 
     //
-    // Effects list table
+    // Effect resource view
     //
-    qDebug() << "- Constructing effects list";
+    qDebug() << "- Constructing effects resource view";
 
-    effectTable = new QTableView(this);
-    effectTable->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
-    effectTable->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
-
+    resourceView = new QTableView(this);
+    resourceView->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+    resourceView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
+    resourceView->setSelectionMode(QAbstractItemView::SingleSelection);
+    resourceView->setSelectionBehavior(QAbstractItemView::SelectRows);
+    resourceModel = new QEDResourceModel(this);
+    resourceView->setModel(resourceModel);
 
     //
     // Construct the main screen
@@ -471,7 +480,7 @@
     QVBoxLayout *sideVBox = new QVBoxLayout(sideVBoxContainer);
     sideVBox->setSpacing(0);
     sideVBox->setContentsMargins(0, 0, 0, 0);
-    sideVBox->addWidget(effectTable);
+    sideVBox->addWidget(resourceView);
     sideVBox->addWidget(controlButtons);
 
 
@@ -483,11 +492,11 @@
     timelineScrollBar = new QScrollBar(Qt::Horizontal);
     connect(timelineScrollBar, SIGNAL(valueChanged(int)), this, SLOT(actionTimelineScrollChanged(int)));
     
-    timelineAudioTrack = new QWaveTrackView();
+    timelineAudioTrack = new QEDWaveTrackView();
     connect(timelineAudioTrack, SIGNAL(offsetChanged(float)), this, SLOT(actionOffsetChanged(float)));
     connect(timelineAudioTrack, SIGNAL(timeChanged(float)), this, SLOT(actionTimeChanged(float)));
 
-    timelineView = new QTimelineView();
+    timelineView = new QEDTimelineView();
     connect(timelineView, SIGNAL(timelineChanged()), this, SLOT(actionTimelineChanged()));
 
     QScrollArea *scrollArea = new QScrollArea();
@@ -496,7 +505,7 @@
     scrollArea->setWidgetResizable(true);
 
 
-    demoView = new SWDemoView(this);
+    demoView = new QEDSWDemoView(this);
 
     verticalSplitter->addLayout(horizSplitter);
     verticalSplitter->addWidget(scrollArea);
--- a/edmain.cpp	Fri Oct 19 17:49:22 2012 +0300
+++ b/edmain.cpp	Fri Oct 19 21:52:16 2012 +0300
@@ -247,6 +247,11 @@
 }
 
 
+void DemoEditor::updateResourceView()
+{
+}
+
+
 void DemoEditor::updateTimelineView()
 {
     demoView->setEngineData(&engine);    
@@ -341,10 +346,7 @@
     }
 
     // Etc.
-
-    updateTimelineView();
-    updateMenuStates();
-    update();
+    rehash();
     return DMERR_OK;
 }
 
@@ -361,10 +363,20 @@
 }
 
 
+void DemoEditor::rehash()
+{
+    timelineView->setTimeline(currTimeline);
+    updateResourceView();
+    updateTimelineView();
+    updateMenuStates();
+    update();
+}
+
+
 void DemoEditor::createNewFile()
 {
     delete currTimeline;
-    currTimeline = new TimelineObject();
+    currTimeline = new EDTimelineObject();
 
     DMTimelineTrack *tr;
     dmTimelineAddTrack(currTimeline->tl, &tr, "Penis");
@@ -374,15 +386,15 @@
     
     dmTimelineEventSetEffectByIndex(ev, 0);
 
-    update();
     historyReset();
     updateMenuStates();
+    update();
 }
 
 
 void DemoEditor::readFromFile(QString filename)
 {
-    TimelineObject *tmp = new TimelineObject();
+    EDTimelineObject *tmp = new EDTimelineObject();
     int ret = tmp->load(filename);
     if (ret != DMERR_OK)
     {
@@ -393,14 +405,7 @@
     {
         delete currTimeline;
         currTimeline = tmp;
-
-        timelineView->setTimeline(currTimeline);
-        updateTimelineView();
-        updateMenuStates();
-
-        update();
-        historyReset();
-        updateMenuStates();
+        rehash();
     }
 }
 
@@ -423,7 +428,6 @@
 
     restoreGeometry(s.value("windowGeometry").toByteArray());
     restoreState(s.value("windowState").toByteArray());
-
 }
 
 
@@ -433,7 +437,6 @@
 
     s.setValue("windowGeometry", saveGeometry());
     s.setValue("windowState", saveState());
-
 }
 
 
@@ -466,7 +469,7 @@
         delete undoHistory.takeFirst();
     }
     
-    TimelineObject *copy = new TimelineObject(currTimeline);
+    EDTimelineObject *copy = new EDTimelineObject(currTimeline);
     copy->setState(description);
     undoHistory.append(copy);
 }
@@ -477,12 +480,13 @@
     if (currTimeline == NULL)
         return;
 
-    TimelineObject *copy = new TimelineObject(currTimeline);
+    EDTimelineObject *copy = new EDTimelineObject(currTimeline);
     copy->setState("-");
     undoHistory.append(copy);
 
     undoHistoryPos = undoHistory.size() - 1;
     currTimeline->touch();
+    updateTimelineView();
     updateMenuStates();
     update();
 }
@@ -503,9 +507,9 @@
     {
         undoHistoryPos++;
         delete currTimeline;
-        currTimeline = new TimelineObject(undoHistory.at(undoHistoryPos));
+        currTimeline = new EDTimelineObject(undoHistory.at(undoHistoryPos));
         currTimeline->touch();
-        
+        updateTimelineView();
         updateMenuStates();
         update();
     }
@@ -518,9 +522,9 @@
     {
         undoHistoryPos--;
         delete currTimeline;
-        currTimeline = new TimelineObject(undoHistory.at(undoHistoryPos));
+        currTimeline = new EDTimelineObject(undoHistory.at(undoHistoryPos));
         currTimeline->touch();
-        
+        updateTimelineView();
         updateMenuStates();
         update();
     }
--- a/edmain.h	Fri Oct 19 17:49:22 2012 +0300
+++ b/edmain.h	Fri Oct 19 21:52:16 2012 +0300
@@ -23,6 +23,7 @@
 #include "edview.h"
 #include "edwaveform.h"
 #include "edtimeline.h"
+#include "edres.h"
 #include <QDebug>
 #include <QFile>
 #include <QApplication>
@@ -70,14 +71,15 @@
     void actionTimelineChanged();
 
 private:
-    QTableView *effectTable;
     QAction *menuActUndo, *menuActRedo, *menuActOpen, *menuActSave, *menuActSaveAs;
 //    QAction *menuActCut, *menuActCopy, *menuActPaste, *menuActDelete;
     QActionGroup *actGroupControls;
     QScrollBar *timelineScrollBar;
-    QWaveTrackView *timelineAudioTrack;
-    QTimelineView *timelineView;
-    GLDemoView *demoView;
+    QTableView *resourceView;
+    QEDResourceModel *resourceModel;
+    QEDWaveTrackView *timelineAudioTrack;
+    QEDTimelineView *timelineView;
+    QEDGLDemoView *demoView;
     
     
 
@@ -92,11 +94,13 @@
     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();
@@ -112,10 +116,10 @@
     int currViewOffset;
     int currFrameTime;
 
-    TimelineObject *currTimeline;
+    EDTimelineObject *currTimeline;
     DMEngineData engine;
 
-    QList<TimelineObject *> undoHistory;
+    QList<EDTimelineObject *> undoHistory;
     int undoHistoryPos, undoHistoryMax;
 
     void historyReset();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/edres.cpp	Fri Oct 19 21:52:16 2012 +0300
@@ -0,0 +1,74 @@
+#include "edres.h"
+#include "dmengine.h"
+
+
+QEDResourceModel::QEDResourceModel(QObject *parent)
+    : QAbstractTableModel(parent)
+{
+}
+
+
+int QEDResourceModel::rowCount(const QModelIndex &parent) const
+{
+    Q_UNUSED(parent);
+    return nengineEffects;
+}
+
+
+int QEDResourceModel::columnCount(const QModelIndex &parent) const
+{
+    Q_UNUSED(parent);
+    return 2;
+}
+
+
+QVariant QEDResourceModel::data(const QModelIndex &index, int role) const
+{
+    if (!index.isValid())
+        return QVariant();
+
+    if (index.row() >= nengineEffects || index.row() < 0)
+        return QVariant();
+
+    if (role == Qt::DisplayRole)
+    {
+        DMEffect *ef = &engineEffects[index.row()];
+        switch (index.column())
+        {
+            case 0:
+                return QString(ef->name);
+
+            case 1:
+                return QVariant(ef->nparams);
+        }
+    }
+    return QVariant();
+}
+
+
+QVariant QEDResourceModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+    if (role != Qt::DisplayRole)
+        return QVariant();
+
+    if (orientation == Qt::Horizontal)
+    {
+        switch (section) {
+            case 0:
+                return "Name";
+
+            case 1:
+                return "# params";
+        }
+    }
+    return QVariant();
+}
+
+
+Qt::ItemFlags QEDResourceModel::flags(const QModelIndex &index) const
+{
+    if (!index.isValid())
+        return Qt::ItemIsEnabled;
+
+    return QAbstractTableModel::flags(index); // | Qt::ItemIsEditable;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/edres.h	Fri Oct 19 21:52:16 2012 +0300
@@ -0,0 +1,26 @@
+#ifndef RESOURCEMODEL_H
+#define RESOURCEMODEL_H
+
+#include <QAbstractTableModel>
+#include <QPair>
+#include <QList>
+
+class QEDResourceModel : public QAbstractTableModel
+{
+    Q_OBJECT
+    
+public:
+    QEDResourceModel(QObject *parent = 0);
+
+    int rowCount(const QModelIndex &parent) const;
+    int columnCount(const QModelIndex &parent) const;
+    QVariant data(const QModelIndex &index, int role) const;
+    QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+    Qt::ItemFlags flags(const QModelIndex &index) const;
+//    bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+//    QList< QPair<QString, QString> > getList();
+
+private:
+};
+
+#endif
--- a/edtimeline.cpp	Fri Oct 19 17:49:22 2012 +0300
+++ b/edtimeline.cpp	Fri Oct 19 21:52:16 2012 +0300
@@ -2,7 +2,7 @@
 #include "edtimeline.h"
 
 
-QTimelineTrackDisplay::QTimelineTrackDisplay(QWidget *parent) : QWidget(parent)
+QEDTimelineTrackDisplay::QEDTimelineTrackDisplay(QWidget *parent) : QWidget(parent)
 {
     track = NULL;
     time = offs = 0;
@@ -12,56 +12,56 @@
 }
 
 
-QSize QTimelineTrackDisplay::minimumSizeHint() const
+QSize QEDTimelineTrackDisplay::minimumSizeHint() const
 {
     return QSize(100, 60);
 }
 
 
-QSize QTimelineTrackDisplay::sizeHint() const
+QSize QEDTimelineTrackDisplay::sizeHint() const
 {
     return QSize(600, 60);
 }
 
 
-void QTimelineTrackDisplay::setTrack(DMTimelineTrack *mtrack)
+void QEDTimelineTrackDisplay::setTrack(DMTimelineTrack *mtrack)
 {
     track = mtrack;
 }
 
 
-void QTimelineTrackDisplay::setTime(const int mtime)
+void QEDTimelineTrackDisplay::setTime(const int mtime)
 {
     time = mtime;
 }
 
 
-void QTimelineTrackDisplay::setOffset(const int moffs)
+void QEDTimelineTrackDisplay::setOffset(const int moffs)
 {
     offs = moffs;
 }
 
 
-void QTimelineTrackDisplay::setScale(const float mscale)
+void QEDTimelineTrackDisplay::setScale(const float mscale)
 {
     if (mscale > 0.05)
         scale = mscale;
 }
 
 
-float QTimelineTrackDisplay::getTimeScale(float value)
+float QEDTimelineTrackDisplay::getTimeScale(float value)
 {
     return value * scale;
 }
 
 
-float QTimelineTrackDisplay::getTimeFromCoord(float value)
+float QEDTimelineTrackDisplay::getTimeFromCoord(float value)
 {
     return value * scale * 1000.0f;
 }
 
 
-void QTimelineTrackDisplay::paintEvent(QPaintEvent *)
+void QEDTimelineTrackDisplay::paintEvent(QPaintEvent *)
 {
     if (track == NULL)
         return;
@@ -130,7 +130,7 @@
 }
 
 
-void QTimelineTrackDisplay::mousePressEvent(QMouseEvent *ev)
+void QEDTimelineTrackDisplay::mousePressEvent(QMouseEvent *ev)
 {
 /*
     if (ev->button() == Qt::LeftButton)
@@ -142,7 +142,7 @@
 }
 
 
-void QTimelineTrackDisplay::mouseMoveEvent(QMouseEvent *ev)
+void QEDTimelineTrackDisplay::mouseMoveEvent(QMouseEvent *ev)
 {
 /*
     if ((ev->buttons() & Qt::LeftButton) && scribbling)
@@ -151,7 +151,7 @@
 }
 
 
-void QTimelineTrackDisplay::mouseReleaseEvent(QMouseEvent *ev)
+void QEDTimelineTrackDisplay::mouseReleaseEvent(QMouseEvent *ev)
 {
 /*
     if (ev->button() == Qt::LeftButton && scribbling)
@@ -163,11 +163,11 @@
 }
 
 
-QTimelineTrackView::QTimelineTrackView(QWidget *parent) : QWidget(parent)
+QEDTimelineTrackView::QEDTimelineTrackView(QWidget *parent) : QWidget(parent)
 {
     QHBoxLayout *mainLayout = new QHBoxLayout(this);
     mainLayout->setMargin(0);
-    track = new QTimelineTrackDisplay(this);
+    track = new QEDTimelineTrackDisplay(this);
 
     QFrame *infoLayoutContainer = new QFrame(this);
     infoLayoutContainer->setFrameStyle(QFrame::StyledPanel | QFrame::Plain);
@@ -200,7 +200,7 @@
 }
 
 
-void QTimelineTrackView::update()
+void QEDTimelineTrackView::update()
 {
     if (track != NULL && track->track)
     {
@@ -219,21 +219,21 @@
 }
 
 
-void QTimelineTrackView::setTrack(DMTimelineTrack *mtrack)
+void QEDTimelineTrackView::setTrack(DMTimelineTrack *mtrack)
 {
     track->setTrack(mtrack);
     update();
 }
 
 
-void QTimelineTrackView::slotTrackEnabledChanged(bool value)
+void QEDTimelineTrackView::slotTrackEnabledChanged(bool value)
 {
     track->track->enabled = value;
     emit trackChanged();
 }
 
 
-void QTimelineTrackView::slotTrackNameChanged(const QString & text)
+void QEDTimelineTrackView::slotTrackNameChanged(const QString & text)
 {
     QByteArray ba = text.toUtf8();
     track->track->name = dm_strdup(ba.constData());
@@ -242,14 +242,14 @@
 
 
 
-QTimelineView::QTimelineView(QWidget *parent) : QWidget(parent)
+QEDTimelineView::QEDTimelineView(QWidget *parent) : QWidget(parent)
 {
     layout = new QVBoxLayout(this);
     tl = NULL;
 }
 
 
-void QTimelineView::setTimeline(TimelineObject *mtl)
+void QEDTimelineView::setTimeline(EDTimelineObject *mtl)
 {
     tl = mtl;
 
@@ -263,7 +263,7 @@
     {
         for (int track = 0; track < tl->tl->ntracks; track++)
         {
-            QTimelineTrackView *vtr = new QTimelineTrackView(this);
+            QEDTimelineTrackView *vtr = new QEDTimelineTrackView(this);
             vtr->setTrack(tl->tl->tracks[track]);
             tracks.append(vtr);
             layout->addWidget(vtr);
@@ -274,7 +274,7 @@
 }
 
 
-void QTimelineView::slotTimelineChanged()
+void QEDTimelineView::slotTimelineChanged()
 {
     if (tl != NULL)
     {
@@ -284,11 +284,11 @@
 }
 
 
-void QTimelineView::setTime(const int mtime)
+void QEDTimelineView::setTime(const int mtime)
 {
     if (tl != NULL && tl->tl != NULL)
     {
-        QList<QTimelineTrackView *>::iterator track;
+        QList<QEDTimelineTrackView *>::iterator track;
         for (track = tracks.begin(); track != tracks.end(); track++)
         {
             (*track)->track->setTime(mtime);
@@ -298,11 +298,11 @@
 }
 
 
-void QTimelineView::setOffset(const int moffs)
+void QEDTimelineView::setOffset(const int moffs)
 {
     if (tl != NULL && tl->tl != NULL)
     {
-        QList<QTimelineTrackView *>::iterator track;
+        QList<QEDTimelineTrackView *>::iterator track;
         for (track = tracks.begin(); track != tracks.end(); track++)
         {
             (*track)->track->setOffset(moffs);
@@ -312,11 +312,11 @@
 }
 
 
-void QTimelineView::setScale(const float mscale)
+void QEDTimelineView::setScale(const float mscale)
 {
     if (tl != NULL && tl->tl != NULL)
     {
-        QList<QTimelineTrackView *>::iterator track;
+        QList<QEDTimelineTrackView *>::iterator track;
         for (track = tracks.begin(); track != tracks.end(); track++)
         {
             (*track)->track->setScale(mscale);
--- a/edtimeline.h	Fri Oct 19 17:49:22 2012 +0300
+++ b/edtimeline.h	Fri Oct 19 21:52:16 2012 +0300
@@ -10,14 +10,14 @@
 #include "dmengine.h"
 
 
-class QTimelineTrackDisplay : public QWidget
+class QEDTimelineTrackDisplay : public QWidget
 {
     Q_OBJECT
 
 public:
     DMTimelineTrack *track;
 
-    QTimelineTrackDisplay(QWidget *parent = 0);
+    QEDTimelineTrackDisplay(QWidget *parent = 0);
     void setTrack(DMTimelineTrack *mtrack);
 
     float getTimeScale(float value);
@@ -47,7 +47,7 @@
 };
 
 
-class QTimelineTrackView : public QWidget
+class QEDTimelineTrackView : public QWidget
 {
     Q_OBJECT
 
@@ -57,9 +57,9 @@
     QCheckBox *enabledCheck;
 
 public:
-    QTimelineTrackDisplay *track;
+    QEDTimelineTrackDisplay *track;
 
-    QTimelineTrackView(QWidget *parent = 0);
+    QEDTimelineTrackView(QWidget *parent = 0);
     void setTrack(DMTimelineTrack *mtrack);
     void update();
 
@@ -72,19 +72,19 @@
 };
 
 
-class QTimelineView : public QWidget
+class QEDTimelineView : public QWidget
 {
     Q_OBJECT
 
 private:
     QVBoxLayout *layout;
 
-    TimelineObject *tl;
-    QList<QTimelineTrackView *> tracks;
+    EDTimelineObject *tl;
+    QList<QEDTimelineTrackView *> tracks;
 
 public:
-    QTimelineView(QWidget *parent = 0);
-    void setTimeline(TimelineObject *mtl);
+    QEDTimelineView(QWidget *parent = 0);
+    void setTimeline(EDTimelineObject *mtl);
 
     void setTime(const int mtime);
     void setOffset(const int moffs);
--- a/edtlobj.cpp	Fri Oct 19 17:49:22 2012 +0300
+++ b/edtlobj.cpp	Fri Oct 19 21:52:16 2012 +0300
@@ -1,4 +1,5 @@
 //
+// Demo Editor -- Timeline state object
 // Wrapper class for DMTimeline data
 // (C) Copyright 2012 Matti 'ccr' Hämäläinen <ccr@tnsp.org>
 //
@@ -6,14 +7,14 @@
 #include "dmres.h"
 
 
-TimelineObject::TimelineObject()
+EDTimelineObject::EDTimelineObject()
 {
     dmTimelineNew(&tl, "Demo");
     scrub();
 }
 
 
-TimelineObject::TimelineObject(TimelineObject *obj)
+EDTimelineObject::EDTimelineObject(EDTimelineObject *obj)
 {
     scrub();
     filename = obj->filename;
@@ -21,31 +22,42 @@
 }
 
 
-TimelineObject::~TimelineObject()
+EDTimelineObject::~EDTimelineObject()
 {
     dmFreeTimeline(tl);
 }
 
 
-int TimelineObject::load(QString mfilename)
+int EDTimelineObject::load(QString mfilename)
 {
     QByteArray fnba = mfilename.toUtf8();
     DMResource *res;
+    DMTimeline *tmp;
     if ((res = dmf_create_stdio(fnba.data(), "rb")) == NULL)
         return DMERR_FOPEN;
 
-    dmFreeTimeline(tl);
-    int err = dmLoadTimeline(res, &tl);
+    int err = dmLoadTimeline(res, &tmp);
+    dmf_close(res);
 
-    scrub();
-
-    dmf_close(res);
-    filename = mfilename;
+    if (err == DMERR_OK)
+    {
+        dmFreeTimeline(tl);
+        tl = tmp;
+        scrub();
+        if (tl->name != NULL)
+            filename = QString(tl->name);
+        else
+            filename = mfilename;
+    }
+    else
+    {
+        dmFreeTimeline(tmp);
+    }
     return err;
 }
 
 
-int TimelineObject::save(QString mfilename)
+int EDTimelineObject::save(QString mfilename)
 {
     QByteArray fnba = mfilename.toUtf8();
     DMResource *res;
@@ -60,31 +72,31 @@
 }
 
 
-void TimelineObject::touch()
+void EDTimelineObject::touch()
 {
     ntouches++;
 }
 
 
-void TimelineObject::scrub()
+void EDTimelineObject::scrub()
 {
     ntouches = 0;
 }
 
 
-bool TimelineObject::touched()
+bool EDTimelineObject::touched()
 {
     return ntouches;
 }
 
 
-void TimelineObject::setState(const QString &mstate)
+void EDTimelineObject::setState(const QString &mstate)
 {
     cstate = mstate;
 }
 
 
-QString TimelineObject::state() const
+QString EDTimelineObject::state() const
 {
     return cstate;
 }
--- a/edtlobj.h	Fri Oct 19 17:49:22 2012 +0300
+++ b/edtlobj.h	Fri Oct 19 21:52:16 2012 +0300
@@ -1,14 +1,15 @@
 //
-// Demo Editor -- Demo state object
+// Demo Editor -- Timeline state object
+// Wrapper class for DMTimeline data
 // (C) Copyright 2012 Matti 'ccr' Hämäläinen <ccr@tnsp.org>
 //
-#ifndef TIMELINEOBJECT_H
-#define TIMELINEOBJECT_H
+#ifndef EDTIMELINEOBJECT_H
+#define EDTIMELINEOBJECT_H
 
 #include "dmengine.h"
 #include <QString>
 
-class TimelineObject
+class EDTimelineObject
 {
 private:
     QString cstate;
@@ -18,9 +19,9 @@
     QString filename;
     DMTimeline *tl;
 
-    TimelineObject();
-    TimelineObject(TimelineObject *);
-    ~TimelineObject();
+    EDTimelineObject();
+    EDTimelineObject(EDTimelineObject *);
+    ~EDTimelineObject();
 
     int load(QString filename);
     int save(QString filename);
--- a/edview.cpp	Fri Oct 19 17:49:22 2012 +0300
+++ b/edview.cpp	Fri Oct 19 21:52:16 2012 +0300
@@ -2,7 +2,7 @@
 #include <QtGui>
 
 
-GLDemoView::GLDemoView(QWidget *parent) :
+QEDGLDemoView::QEDGLDemoView(QWidget *parent) :
     QGLWidget(QGLFormat(QGL::SampleBuffers|QGL::AlphaChannel), parent)
 {
     makeCurrent();
@@ -26,30 +26,30 @@
 }
 
 
-GLDemoView::~GLDemoView()
+QEDGLDemoView::~QEDGLDemoView()
 {
 }
 
 
-QSize GLDemoView::minimumSizeHint() const
+QSize QEDGLDemoView::minimumSizeHint() const
 {
     return QSize(320, 240);
 }
 
 
-QSize GLDemoView::sizeHint() const
+QSize QEDGLDemoView::sizeHint() const
 {
     return QSize(640, 480);
 }
 
 
-void GLDemoView::setEngineData(DMEngineData *mengine)
+void QEDGLDemoView::setEngineData(DMEngineData *mengine)
 {
     engine = mengine;
 }
 
 
-void GLDemoView::render(int frameTime)
+void QEDGLDemoView::render(int frameTime)
 {
     if (engine != NULL)
     {
@@ -69,7 +69,7 @@
 }
 
 
-void GLDemoView::paintEvent(QPaintEvent *)
+void QEDGLDemoView::paintEvent(QPaintEvent *)
 {
     // save the GL state set for QPainter
     saveGLState();
@@ -79,7 +79,7 @@
 }
 
 
-void GLDemoView::saveGLState()
+void QEDGLDemoView::saveGLState()
 {
     glPushAttrib(GL_ALL_ATTRIB_BITS);
     glMatrixMode(GL_PROJECTION);
@@ -89,7 +89,7 @@
 }
 
 
-void GLDemoView::restoreGLState()
+void QEDGLDemoView::restoreGLState()
 {
     glMatrixMode(GL_PROJECTION);
     glPopMatrix();
@@ -99,19 +99,19 @@
 }
 
 
-SWDemoView::SWDemoView(QWidget *parent) : GLDemoView(parent)
+QEDSWDemoView::QEDSWDemoView(QWidget *parent) : QEDGLDemoView(parent)
 {
     img = NULL;
 }
 
 
-SWDemoView::~SWDemoView()
+QEDSWDemoView::~QEDSWDemoView()
 {
     delete img;
 }
 
 
-void SWDemoView::setEngineData(DMEngineData *mengine)
+void QEDSWDemoView::setEngineData(DMEngineData *mengine)
 {
     engine = mengine;
     delete img;
@@ -122,7 +122,7 @@
 }
 
 
-void SWDemoView::paintEvent(QPaintEvent *)
+void QEDSWDemoView::paintEvent(QPaintEvent *)
 {
     if (img != NULL)
     {
@@ -132,12 +132,12 @@
 }
 
 
-void SWDemoView::render(int frameTime)
+void QEDSWDemoView::render(int frameTime)
 {
     if (SDL_MUSTLOCK(engine->screen) != 0 && SDL_LockSurface(engine->screen) != 0)
         return;
 
-    GLDemoView::render(frameTime);
+    QEDGLDemoView::render(frameTime);
 
     if (SDL_MUSTLOCK(engine->screen) != 0)
         SDL_UnlockSurface(engine->screen);
--- a/edview.h	Fri Oct 19 17:49:22 2012 +0300
+++ b/edview.h	Fri Oct 19 21:52:16 2012 +0300
@@ -6,13 +6,13 @@
 #include "dmengine.h"
 
 
-class GLDemoView : public QGLWidget
+class QEDGLDemoView : public QGLWidget
 {
     Q_OBJECT
 
 public:
-    GLDemoView(QWidget *parent);
-    ~GLDemoView();
+    QEDGLDemoView(QWidget *parent);
+    ~QEDGLDemoView();
 
     QSize minimumSizeHint() const;
     QSize sizeHint() const;
@@ -30,13 +30,13 @@
 };
 
 
-class SWDemoView : public GLDemoView
+class QEDSWDemoView : public QEDGLDemoView
 {
     Q_OBJECT
 
 public:
-    SWDemoView(QWidget *parent);
-    ~SWDemoView();
+    QEDSWDemoView(QWidget *parent);
+    ~QEDSWDemoView();
 
     void setEngineData(DMEngineData *mengine);
     void render(int frameTime);
--- a/edwaveform.cpp	Fri Oct 19 17:49:22 2012 +0300
+++ b/edwaveform.cpp	Fri Oct 19 21:52:16 2012 +0300
@@ -3,7 +3,7 @@
 #include "edwaveform.h"
 
 
-QWaveTrackDisplay::QWaveTrackDisplay(QWidget *parent) : QWidget(parent)
+QEDWaveTrackDisplay::QEDWaveTrackDisplay(QWidget *parent) : QWidget(parent)
 {
     data      = NULL;
     size      = 0;
@@ -19,7 +19,7 @@
 }
 
 
-void QWaveTrackDisplay::setWaveform(void *mdata, int msize, int mformat, int mchannels, int mfreq)
+void QEDWaveTrackDisplay::setWaveform(void *mdata, int msize, int mformat, int mchannels, int mfreq)
 {
     data     = mdata;
     size     = msize;
@@ -46,7 +46,7 @@
 }
 
 
-int QWaveTrackDisplay::getBps()
+int QEDWaveTrackDisplay::getBps()
 {
     int bps = channels;
     switch (format)
@@ -64,25 +64,25 @@
 }
 
 
-float QWaveTrackDisplay::getDuration()
+float QEDWaveTrackDisplay::getDuration()
 {
     return duration;
 }
 
 
-float QWaveTrackDisplay::getTimeScale(float value)
+float QEDWaveTrackDisplay::getTimeScale(float value)
 {
     return (value * scale * (float) freq) / 1000.0f;
 }
 
 
-float QWaveTrackDisplay::getTimeFromCoord(float value)
+float QEDWaveTrackDisplay::getTimeFromCoord(float value)
 {
     return value * scale;
 }
 
 
-void QWaveTrackDisplay::setTime(const float mtime)
+void QEDWaveTrackDisplay::setTime(const float mtime)
 {
     if (time != mtime && mtime >= 0 && mtime < duration)
     {
@@ -93,7 +93,7 @@
 }
 
 
-void QWaveTrackDisplay::setOffset(const float moffs)
+void QEDWaveTrackDisplay::setOffset(const float moffs)
 {
     if (offs != moffs && moffs >= 0 && moffs < getDuration())
     {
@@ -104,7 +104,7 @@
 }
 
 
-void QWaveTrackDisplay::setScale(const float mscale)
+void QEDWaveTrackDisplay::setScale(const float mscale)
 {
     if (mscale > 0.05)
         scale = mscale;
@@ -112,25 +112,25 @@
 }
 
 
-float QWaveTrackDisplay::getScaledWidth()
+float QEDWaveTrackDisplay::getScaledWidth()
 {
     return getTimeScale(width());
 }
 
 
-float QWaveTrackDisplay::getTime()
+float QEDWaveTrackDisplay::getTime()
 {
     return time;
 }
 
 
-float QWaveTrackDisplay::getOffset()
+float QEDWaveTrackDisplay::getOffset()
 {
     return offs;
 }
 
 
-void QWaveTrackDisplay::paintEvent(QPaintEvent *)
+void QEDWaveTrackDisplay::paintEvent(QPaintEvent *)
 {
     QColor waveColor(0, 150, 0);
     QColor waveCenterLine(100, 100, 100);
@@ -217,7 +217,7 @@
 }
 
 
-void QWaveTrackDisplay::mousePressEvent(QMouseEvent *ev)
+void QEDWaveTrackDisplay::mousePressEvent(QMouseEvent *ev)
 {
     if (ev->button() == Qt::LeftButton)
     {
@@ -228,7 +228,7 @@
 }
 
 
-void QWaveTrackDisplay::mouseMoveEvent(QMouseEvent *ev)
+void QEDWaveTrackDisplay::mouseMoveEvent(QMouseEvent *ev)
 {
     if ((ev->buttons() & Qt::LeftButton) && ev->pos().x() != dragPoint.x())
     {
@@ -238,7 +238,7 @@
 }
 
 
-void QWaveTrackDisplay::mouseReleaseEvent(QMouseEvent *ev)
+void QEDWaveTrackDisplay::mouseReleaseEvent(QMouseEvent *ev)
 {
     if (ev->button() == Qt::LeftButton)
     {
@@ -252,11 +252,11 @@
 }
 
 
-QWaveTrackView::QWaveTrackView(QWidget *parent) : QWidget(parent)
+QEDWaveTrackView::QEDWaveTrackView(QWidget *parent) : QWidget(parent)
 {
     QHBoxLayout *mainLayout = new QHBoxLayout(this);
     mainLayout->setMargin(0);
-    wave = new QWaveTrackDisplay(this);
+    wave = new QEDWaveTrackDisplay(this);
 
     QFrame *infoLayoutContainer = new QFrame(this);
     infoLayoutContainer->setFrameStyle(QFrame::StyledPanel | QFrame::Plain);
@@ -283,7 +283,7 @@
 }
 
 
-void QWaveTrackView::setWaveform(void *mdata, int msize, int mformat, int mchannels, int mfreq)
+void QEDWaveTrackView::setWaveform(void *mdata, int msize, int mformat, int mchannels, int mfreq)
 {
     QString fmt;
     switch (mformat)
@@ -300,62 +300,62 @@
 }
 
 
-void QWaveTrackView::setName(QString name)
+void QEDWaveTrackView::setName(QString name)
 {
     infoName->setText(name);
     update();
 }
 
 
-void QWaveTrackView::setTime(const float mtime)
+void QEDWaveTrackView::setTime(const float mtime)
 {
     wave->setTime(mtime);
 }
 
 
-void QWaveTrackView::setOffset(const float moffs)
+void QEDWaveTrackView::setOffset(const float moffs)
 {
     wave->setOffset(moffs);
 }
 
 
-void QWaveTrackView::setScale(const float mscale)
+void QEDWaveTrackView::setScale(const float mscale)
 {
     wave->setScale(mscale);
 }
 
 
-float QWaveTrackView::getTime()
+float QEDWaveTrackView::getTime()
 {
     return wave->getTime();
 }
 
 
-float QWaveTrackView::getOffset()
+float QEDWaveTrackView::getOffset()
 {
     return wave->getOffset();
 }
 
 
-float QWaveTrackView::getScaledWidth()
+float QEDWaveTrackView::getScaledWidth()
 {
     return wave->getScaledWidth();
 }
 
 
-void QWaveTrackView::slotTimeChanged(float value)
+void QEDWaveTrackView::slotTimeChanged(float value)
 {
     emit timeChanged(value);
 }
 
 
-void QWaveTrackView::slotOffsetChanged(float value)
+void QEDWaveTrackView::slotOffsetChanged(float value)
 {
     emit offsetChanged(value);
 }
 
 
-float QWaveTrackView::getDuration()
+float QEDWaveTrackView::getDuration()
 {
     return wave->getDuration();
 }
--- a/edwaveform.h	Fri Oct 19 17:49:22 2012 +0300
+++ b/edwaveform.h	Fri Oct 19 21:52:16 2012 +0300
@@ -5,12 +5,12 @@
 #include <QLabel>
 #include "dmengine.h"
 
-class QWaveTrackDisplay : public QWidget
+class QEDWaveTrackDisplay : public QWidget
 {
     Q_OBJECT
 
 public:
-    QWaveTrackDisplay(QWidget *parent = 0);
+    QEDWaveTrackDisplay(QWidget *parent = 0);
 
     void setWaveform(void *mdata, int msize, int mformat, int mchannels, int mfreq);
     float getScaledWidth();
@@ -60,17 +60,17 @@
 };
 
 
-class QWaveTrackView : public QWidget
+class QEDWaveTrackView : public QWidget
 {
     Q_OBJECT
 
 private:
-    QWaveTrackDisplay *wave;
+    QEDWaveTrackDisplay *wave;
     QLabel *infoName, *infoData;
 
 public:
 
-    QWaveTrackView(QWidget *parent = 0);
+    QEDWaveTrackView(QWidget *parent = 0);
     void setWaveform(void *mdata, int mlen, int mformat, int mchannels, int mfreq);
     void setName(QString name);
     void setTime(const float mtime);