AudibleT 0.0.1
A real-time A/B/X audio testing tool for subjective assessment of various audio parameters, compatible for general purpose computer as well as embedded systems.
Loading...
Searching...
No Matches
DatabaseManager.h
Go to the documentation of this file.
1//=======================================================================
29//=======================================================================
30
31#ifndef DATABASEMANAGER_H
32#define DATABASEMANAGER_H
33
34#include <QObject>
35#include <QSqlDatabase>
36
37#include "AudioSample.h"
38#include "TestingSession.h"
39#include "SessionTrial.h"
40#include "TestSessionData.h"
41
50class DatabaseManager : public QObject {
51 Q_OBJECT
52
53public:
59 explicit DatabaseManager(QObject *parent = nullptr);
60
65
71 bool setupDatabase();
72
77
85 bool insertAudioFile(const QString& path, const QString& fileName);
86
92 QList<AudioSample> getAudioFiles();
93
99 bool clearAudioFiles();
100
108 int createTestSession(int sampleId, int trialsCount);
109
116 bool updateTestSessionEndTime(int sessionId);
117
123 QVector<TestingSession> getSessionsWithDuration();
124
134 bool insertTrial(int sessionId, const QString& correctResponse, const QString& userResponse, int responseTime);
135
142 QVector<SessionTrial> getTrialsForSession(int sessionId);
143
153
163
173
183
196 QMap<QString, QMap<QString, int>> getConfusionMatrixCountsForSession(int sessionId);
197
205 QList<TestSessionData> returnExportDataForAllSessions();
206
215 QList<TestSessionData> returnExportDataForSession(int sessionId);
216
217
218private:
219 QSqlDatabase sql_db;
220
226 bool openDatabase();
227
231 void closeDatabase();
232
239 bool executeQuery(const QString& query);
240
247 bool executeQuery(QSqlQuery& query);
248};
249
250#endif // DATABASEMANAGER_H
The DatabaseManager class manages the database operations for the audio testing application.
Definition: DatabaseManager.h:50
QVector< SessionTrial > getTrialsForSession(int sessionId)
Retrieves all trials for a specific session from the database.
Definition: DatabaseManager.cpp:259
bool insertTrial(int sessionId, const QString &correctResponse, const QString &userResponse, int responseTime)
Inserts a new trial record into the database.
Definition: DatabaseManager.cpp:244
QMap< QString, QMap< QString, int > > getConfusionMatrixCountsForSession(int sessionId)
Get confusion matrix counts for a specific session.
Definition: DatabaseManager.cpp:357
QList< TestSessionData > returnExportDataForSession(int sessionId)
Returns the export data for a specific test session.
Definition: DatabaseManager.cpp:420
double getAverageDurationPerSession()
Gets the average duration per session.
Definition: DatabaseManager.cpp:321
int createTestSession(int sampleId, int trialsCount)
Creates a new test session record in the database.
Definition: DatabaseManager.cpp:187
double getAverageResponseTimePerTrial()
Gets the average response time per trial.
Definition: DatabaseManager.cpp:301
bool insertAudioFile(const QString &path, const QString &fileName)
Inserts an audio file record into the database.
Definition: DatabaseManager.cpp:132
QVector< TestingSession > getSessionsWithDuration()
Retrieves all test sessions along with their durations from the database.
Definition: DatabaseManager.cpp:218
QList< AudioSample > getAudioFiles()
Retrieves all audio files from the database.
Definition: DatabaseManager.cpp:156
double getAverageTrialsPerSession()
Gets the average number of trials per session.
Definition: DatabaseManager.cpp:287
QList< TestSessionData > returnExportDataForAllSessions()
Returns the export data for all test sessions.
Definition: DatabaseManager.cpp:385
bool updateTestSessionEndTime(int sessionId)
Updates the end time of a test session record in the database.
Definition: DatabaseManager.cpp:205
void dropAndRecreateTables()
Drops all tables and recreates them. All data is lost.
Definition: DatabaseManager.cpp:119
bool clearAudioFiles()
Deletes all audio files from the database.
Definition: DatabaseManager.cpp:179
bool setupDatabase()
Sets up the database. Opens the connection and creates necessary tables.
Definition: DatabaseManager.cpp:78
double getAverageSuccessPerSession()
Gets the average success per session.
Definition: DatabaseManager.cpp:335
~DatabaseManager()
Destroys the DatabaseManager object and cleans up.
Definition: DatabaseManager.cpp:43