#ifndef SOUNDENGINE_H #define SOUNDENGINE_H #include #include #include #include class QAudioOutput; class QBuffer; typedef QMap QStringMap; class SoundEngine : public QObject { Q_OBJECT public: explicit SoundEngine(QObject *parent = nullptr); ~SoundEngine() override; void playSound(const QString &fileName); QStringMap &getAvailableThemes(); private: QStringMap availableThemes; QMap audioData; QMediaPlayer *player; protected: void ensureThemeDirectoryExists(); private slots: void soundEnabledChanged(); void themeChangedSlot(); public slots: void testSound(); }; extern SoundEngine *soundEngine; #endif