summaryrefslogtreecommitdiff
path: root/src/project.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/project.h')
-rw-r--r--src/project.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/project.h b/src/project.h
index 097b7c9..2124730 100644
--- a/src/project.h
+++ b/src/project.h
@@ -26,9 +26,32 @@
*/
#pragma once
+#include <list>
+
#include <QObject>
#include <QString>
+class Project;
+
+class Instrument
+{
+public:
+ Instrument(Project& project, int id);
+
+ int getId() const;
+
+ QString getInstrumentName() const;
+ void setInstrumentName(const QString& instrument_name);
+
+private:
+ friend class ProjectSerialiser;
+
+ int id;
+ QString instrument_name;
+
+ Project& project;
+};
+
class Project
: public QObject
{
@@ -63,6 +86,10 @@ public:
QString getRawFileRoot() const;
void setRawFileRoot(const QString& raw_file_root);
+ Instrument& getInstrument(int id);
+ int createInstrument();
+ void deleteInstrument(int id);
+
void reset();
signals:
@@ -75,5 +102,8 @@ private:
QString project_name;
QString raw_file_root;
+ std::list<Instrument> instruments;
+ int next_id{0};
+
int update_count{0};
};