Fix sounds on Qt6 (#5439)

This commit is contained in:
Zach H 2025-01-10 23:10:47 -05:00 committed by GitHub
parent 1a3df84f0a
commit 8bea3f8997
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 16 additions and 5 deletions

View file

@ -292,7 +292,7 @@ if(APPLE)
set(plugin_dest_dir cockatrice.app/Contents/Plugins) set(plugin_dest_dir cockatrice.app/Contents/Plugins)
set(qtconf_dest_dir cockatrice.app/Contents/Resources) set(qtconf_dest_dir cockatrice.app/Contents/Resources)
# Qt plugins: audio (Qt5), iconengines, imageformats, platforms, printsupport (Qt5), styles, tls (Qt6) # Qt plugins: audio (Qt5), iconengines, imageformats, multimedia (Qt6), platforms, printsupport (Qt5), styles, tls (Qt6)
install( install(
DIRECTORY "${QT_PLUGINS_DIR}/" DIRECTORY "${QT_PLUGINS_DIR}/"
DESTINATION ${plugin_dest_dir} DESTINATION ${plugin_dest_dir}
@ -303,6 +303,7 @@ if(APPLE)
PATTERN "audio/*.dylib" PATTERN "audio/*.dylib"
PATTERN "iconengines/*.dylib" PATTERN "iconengines/*.dylib"
PATTERN "imageformats/*.dylib" PATTERN "imageformats/*.dylib"
PATTERN "multimedia/*.dylib"
PATTERN "platforms/*.dylib" PATTERN "platforms/*.dylib"
PATTERN "printsupport/*.dylib" PATTERN "printsupport/*.dylib"
PATTERN "styles/*.dylib" PATTERN "styles/*.dylib"
@ -343,7 +344,7 @@ if(WIN32)
PATTERN "*.dll" PATTERN "*.dll"
) )
# Qt plugins: audio (Qt5), iconengines, imageformats, platforms, printsupport (Qt5), styles, tls (Qt6) # Qt plugins: audio (Qt5), iconengines, imageformats, multimedia (Qt6) platforms, printsupport (Qt5), styles, tls (Qt6)
install( install(
DIRECTORY "${QT_PLUGINS_DIR}/" DIRECTORY "${QT_PLUGINS_DIR}/"
DESTINATION ${plugin_dest_dir} DESTINATION ${plugin_dest_dir}
@ -355,6 +356,7 @@ if(WIN32)
PATTERN "imageformats/*.dll" PATTERN "imageformats/*.dll"
PATTERN "mediaservice/dsengine.dll" PATTERN "mediaservice/dsengine.dll"
PATTERN "mediaservice/wmfengine.dll" PATTERN "mediaservice/wmfengine.dll"
PATTERN "multimedia/*.dll"
PATTERN "platforms/qdirect2d.dll" PATTERN "platforms/qdirect2d.dll"
PATTERN "platforms/qminimal.dll" PATTERN "platforms/qminimal.dll"
PATTERN "platforms/qoffscreen.dll" PATTERN "platforms/qoffscreen.dll"

View file

@ -28,6 +28,10 @@ SoundEngine::~SoundEngine()
player->deleteLater(); player->deleteLater();
player = nullptr; player = nullptr;
} }
if (audioOutput) {
audioOutput->deleteLater();
audioOutput = nullptr;
}
} }
void SoundEngine::soundEnabledChanged() void SoundEngine::soundEnabledChanged()
@ -37,8 +41,8 @@ void SoundEngine::soundEnabledChanged()
if (!player) { if (!player) {
player = new QMediaPlayer; player = new QMediaPlayer;
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
auto qAudioOutput = new QAudioOutput; audioOutput = new QAudioOutput(player);
player->setAudioOutput(qAudioOutput); player->setAudioOutput(audioOutput);
#endif #endif
} }
} else { } else {
@ -48,6 +52,10 @@ void SoundEngine::soundEnabledChanged()
player->deleteLater(); player->deleteLater();
player = nullptr; player = nullptr;
} }
if (audioOutput) {
audioOutput->deleteLater();
audioOutput = nullptr;
}
} }
} }

View file

@ -1,12 +1,12 @@
#ifndef SOUNDENGINE_H #ifndef SOUNDENGINE_H
#define SOUNDENGINE_H #define SOUNDENGINE_H
#include <QAudioOutput>
#include <QMap> #include <QMap>
#include <QMediaPlayer> #include <QMediaPlayer>
#include <QObject> #include <QObject>
#include <QString> #include <QString>
class QAudioOutput;
class QBuffer; class QBuffer;
typedef QMap<QString, QString> QStringMap; typedef QMap<QString, QString> QStringMap;
@ -23,6 +23,7 @@ public:
private: private:
QStringMap availableThemes; QStringMap availableThemes;
QMap<QString, QString> audioData; QMap<QString, QString> audioData;
QAudioOutput *audioOutput;
QMediaPlayer *player; QMediaPlayer *player;
protected: protected: