#include "./osd_sound_mod_qtmultimedia.h"
+#include <algorithm>
+
#if QT_VERSION >= QT_VERSION_CHECK(6, 2, 0)
#include <QMediaDevices>
#endif
connect(parent, SIGNAL(sig_set_sound_volume(double)), this, SLOT(set_volume(double)), Qt::QueuedConnection);
connect(parent, SIGNAL(sig_set_sound_device(QString)), this, SLOT(do_set_device_by_name(QString)), Qt::QueuedConnection);
- get_sound_devices_list();
-
+ initialize_sound_devices_list();
+#if QT_VERSION >= QT_VERSION_CHECK(6, 2, 0)
+ m_audioOutputDevice = QMediaDevices::defaultAudioOutput();
+#elif QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+ m_audioOutputDevice = QAudioDeviceInfo::defaultOutputDevice();
+#endif
m_device_is_default = true;
- QString _drv = QString::fromUtf8("Default");
+ m_device_name = "Default";
+
+ QString _drv = QString::fromStdString(m_device_name);
config_t* _ccp = get_config_ptr();
if(_ccp != nullptr) {
if(strlen(_ccp->sound_device_name) > 0) {
_drv = QString::fromUtf8(_ccp->sound_device_name);
}
}
- m_device_name = _drv.toLocal8Bit().toStdString();
+ auto _match = std::find(devices_name_list.begin(), devices_name_list.end(), _drv.toLocal8Bit().toStdString());
+ if(_match != devices_name_list.end()) {
+ m_device_name = (*_match);
+ }
m_config_ok = initialize_driver();
}
return result;
}
-
-std::list<std::string> M_QT_MULTIMEDIA::get_sound_devices_list()
+void M_QT_MULTIMEDIA::initialize_sound_devices_list()
{
devices_name_list.clear();
#if QT_VERSION >= QT_VERSION_CHECK(6, 2, 0)
devices_name_list.push_back((*i).deviceName().toStdString());
}
#endif
+}
+
+std::list<std::string> M_QT_MULTIMEDIA::get_sound_devices_list()
+{
return devices_name_list;
}
QAudioDeviceInfo get_device_by_name(QString driver_name);
void setup_device(QAudioDeviceInfo dest_device, int& rate,int& channels,int& latency_ms, bool force_reinit = false);
#endif
-
+ virtual void initialize_sound_devices_list();
virtual bool real_reconfig_sound(int& rate,int& channels,int& latency_ms) override;
virtual void update_driver_fileio() override;
virtual const std::string set_device_sound(const _TCHAR* driver_name, int& rate,int& channels,int& latency_ms);