Player::Player(BackendPluginBase *backendPlugin, QObject *parent)
: QObject(parent) {
- Q_ASSERT(backendPlugin);
+ if (!backendPlugin) {
+ qCCritical(playerCategory)
+ << "Trying to create a player without a backendPlugin";
+ return;
+ }
qCDebug(playerCategory) << "Creating player" << this;
m_backend = backendPlugin->createInstance(this);
Q_CHECK_PTR(m_backend);
qRegisterMetaType<TimeStamp>("TimeStamp");
qRegisterMetaType<StreamIndex>("StreamIndex");
qRegisterMetaType<Volume>("Volume");
- qmlRegisterUncreatableType<Player>(
- "org.aptx.aniplayer", 1, 0, "Player",
- "The player is provided to QML as the 'player' global variable.");
+ qmlRegisterType<Player>("org.aptx.aniplayer", 1, 0, "Player");
}
bool Player::canLoadVideoNow() const {
static const constexpr Volume MAX_VOLUME = Volume{1.0};
- explicit Player(BackendPluginBase *, QObject *parent = nullptr);
+ // BackendPluginBase * allowed to be null because this is exposed to QML
+ // for the enums/types. Player should never be created in QML.
+ explicit Player(BackendPluginBase * = nullptr, QObject *parent = nullptr);
~Player() override;
enum class PlayState {