Player: Always use GStreamer
This commit is contained in:
parent
356b7d8e64
commit
7f3293609b
@ -38,7 +38,6 @@
|
|||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
|
|
||||||
#include "constants/behavioursettings.h"
|
#include "constants/behavioursettings.h"
|
||||||
#include "constants/backendsettings.h"
|
|
||||||
#include "constants/playlistsettings.h"
|
#include "constants/playlistsettings.h"
|
||||||
#include "constants/timeconstants.h"
|
#include "constants/timeconstants.h"
|
||||||
|
|
||||||
@ -79,7 +78,7 @@ Player::Player(const SharedPtr<TaskManager> task_manager, const SharedPtr<UrlHan
|
|||||||
task_manager_(task_manager),
|
task_manager_(task_manager),
|
||||||
url_handlers_(url_handlers),
|
url_handlers_(url_handlers),
|
||||||
playlist_manager_(playlist_manager),
|
playlist_manager_(playlist_manager),
|
||||||
engine_(nullptr),
|
engine_(make_unique<GstEngine>(task_manager_)),
|
||||||
analyzer_(nullptr),
|
analyzer_(nullptr),
|
||||||
equalizer_(nullptr),
|
equalizer_(nullptr),
|
||||||
timer_save_volume_(new QTimer(this)),
|
timer_save_volume_(new QTimer(this)),
|
||||||
@ -102,13 +101,6 @@ Player::Player(const SharedPtr<TaskManager> task_manager, const SharedPtr<UrlHan
|
|||||||
|
|
||||||
setObjectName(QLatin1String(metaObject()->className()));
|
setObjectName(QLatin1String(metaObject()->className()));
|
||||||
|
|
||||||
Settings s;
|
|
||||||
s.beginGroup(BackendSettings::kSettingsGroup);
|
|
||||||
EngineBase::Type enginetype = EngineBase::TypeFromName(s.value(BackendSettings::kEngine, EngineBase::Name(EngineBase::Type::GStreamer)).toString().toLower());
|
|
||||||
s.endGroup();
|
|
||||||
|
|
||||||
CreateEngine(enginetype);
|
|
||||||
|
|
||||||
timer_save_volume_->setSingleShot(true);
|
timer_save_volume_->setSingleShot(true);
|
||||||
timer_save_volume_->setInterval(5s);
|
timer_save_volume_->setInterval(5s);
|
||||||
QObject::connect(timer_save_volume_, &QTimer::timeout, this, &Player::SaveVolume);
|
QObject::connect(timer_save_volume_, &QTimer::timeout, this, &Player::SaveVolume);
|
||||||
@ -117,57 +109,8 @@ Player::Player(const SharedPtr<TaskManager> task_manager, const SharedPtr<UrlHan
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EngineBase::Type Player::CreateEngine(EngineBase::Type enginetype) {
|
|
||||||
|
|
||||||
EngineBase::Type use_enginetype = EngineBase::Type::None;
|
|
||||||
|
|
||||||
for (int i = 0; use_enginetype == EngineBase::Type::None; i++) {
|
|
||||||
switch (enginetype) {
|
|
||||||
case EngineBase::Type::None:
|
|
||||||
case EngineBase::Type::GStreamer:{
|
|
||||||
use_enginetype=EngineBase::Type::GStreamer;
|
|
||||||
engine_ = make_unique<GstEngine>(task_manager_);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
if (i > 0) {
|
|
||||||
qFatal("No engine available!");
|
|
||||||
}
|
|
||||||
enginetype = EngineBase::Type::None;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (use_enginetype != enginetype) { // Engine was set to something else. Reset output and device.
|
|
||||||
Settings s;
|
|
||||||
s.beginGroup(BackendSettings::kSettingsGroup);
|
|
||||||
s.setValue(BackendSettings::kEngine, EngineBase::Name(use_enginetype));
|
|
||||||
s.setValue(BackendSettings::kOutput, engine_->DefaultOutput());
|
|
||||||
s.setValue(BackendSettings::kDevice, QVariant());
|
|
||||||
s.endGroup();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!engine_) {
|
|
||||||
qFatal("Failed to create engine!");
|
|
||||||
}
|
|
||||||
|
|
||||||
Q_EMIT EngineChanged(use_enginetype);
|
|
||||||
|
|
||||||
return use_enginetype;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void Player::Init() {
|
void Player::Init() {
|
||||||
|
|
||||||
Settings s;
|
|
||||||
|
|
||||||
if (!engine_) {
|
|
||||||
s.beginGroup(BackendSettings::kSettingsGroup);
|
|
||||||
EngineBase::Type enginetype = EngineBase::TypeFromName(s.value("engine", EngineBase::Name(EngineBase::Type::GStreamer)).toString().toLower());
|
|
||||||
s.endGroup();
|
|
||||||
CreateEngine(enginetype);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!engine_->Init()) {
|
if (!engine_->Init()) {
|
||||||
qFatal("Error initializing audio engine");
|
qFatal("Error initializing audio engine");
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,6 @@ class Player : public PlayerInterface {
|
|||||||
public:
|
public:
|
||||||
explicit Player(const SharedPtr<TaskManager> task_manager, const SharedPtr<UrlHandlers> url_handlers, const SharedPtr<PlaylistManager> playlist_manager, QObject *parent = nullptr);
|
explicit Player(const SharedPtr<TaskManager> task_manager, const SharedPtr<UrlHandlers> url_handlers, const SharedPtr<PlaylistManager> playlist_manager, QObject *parent = nullptr);
|
||||||
|
|
||||||
EngineBase::Type CreateEngine(EngineBase::Type Type);
|
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
SharedPtr<EngineBase> engine() const override { return engine_; }
|
SharedPtr<EngineBase> engine() const override { return engine_; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user