Initialize gstreamer independent of witch engine is used

This commit is contained in:
Jonas Kvinge
2019-04-20 15:25:31 +02:00
parent ba76385a2f
commit 3ed6817ac9
10 changed files with 207 additions and 82 deletions

View File

@@ -49,6 +49,7 @@
#ifdef HAVE_GSTREAMER
# include "engine/gstengine.h"
# include "engine/gststartup.h"
#endif
#ifdef HAVE_XINE
# include "engine/xineengine.h"
@@ -75,12 +76,17 @@
#include "scrobbler/audioscrobbler.h"
using std::shared_ptr;
using std::unique_ptr;
const char *Player::kSettingsGroup = "Player";
Player::Player(Application *app, QObject *parent)
: PlayerInterface(parent),
app_(app),
engine_(nullptr),
#ifdef HAVE_GSTREAMER
gst_startup_(new GstStartup(this)),
#endif
analyzer_(nullptr),
equalizer_(nullptr),
stream_change_type_(Engine::First),
@@ -117,10 +123,13 @@ Engine::EngineType Player::CreateEngine(Engine::EngineType enginetype) {
switch(enginetype) {
case Engine::None:
#ifdef HAVE_GSTREAMER
case Engine::GStreamer:
case Engine::GStreamer:{
use_enginetype=Engine::GStreamer;
engine_.reset(new GstEngine(app_->task_manager()));
unique_ptr<GstEngine> gst_engine(new GstEngine(app_->task_manager()));
gst_engine->SetStartup(gst_startup_);
engine_.reset(gst_engine.release());
break;
}
#endif
#ifdef HAVE_XINE
case Engine::Xine:
@@ -160,6 +169,8 @@ Engine::EngineType Player::CreateEngine(Engine::EngineType enginetype) {
qFatal("Failed to create engine!");
}
emit EngineChanged(use_enginetype);
return use_enginetype;
}