diff --git a/QmlVlcPlayerProxy.cpp b/QmlVlcPlayerProxy.cpp index b023413..57d00f4 100644 --- a/QmlVlcPlayerProxy.cpp +++ b/QmlVlcPlayerProxy.cpp @@ -255,13 +255,13 @@ QString QmlVlcPlayerProxy::get_vlcVersion() return QString::fromLatin1( libvlc_get_version() ); } -void QmlVlcPlayerProxy::play( const QString& mrl ) +void QmlVlcPlayerProxy::play( const QString& mrl, bool is_path /*= false*/ ) { vlc::playlist_player_core& p = player(); p.clear_items(); - int item = p.add_media( mrl.toUtf8().data(), 0, 0, 0, 0 ); + int item = p.add_media( mrl.toUtf8().data(), 0, 0, 0, 0, is_path ); if( item >= 0) { p.play( item ); } @@ -313,6 +313,17 @@ void QmlVlcPlayerProxy::set_mrl( const QString& mrl ) play( mrl ); } +QString QmlVlcPlayerProxy::get_path() +{ + std::string path = player().current_media().mrl(); + return QString::fromUtf8( path.data(), path.size() ); +} + +void QmlVlcPlayerProxy::set_path( const QString& path ) +{ + play( path, true ); +} + bool QmlVlcPlayerProxy::get_playing() { return player().is_playing(); diff --git a/QmlVlcPlayerProxy.h b/QmlVlcPlayerProxy.h index 34701d0..2fab80d 100644 --- a/QmlVlcPlayerProxy.h +++ b/QmlVlcPlayerProxy.h @@ -73,6 +73,7 @@ class QmlVlcPlayerProxy Q_PROPERTY( State state READ get_state NOTIFY stateChanged ) Q_PROPERTY( QString mrl READ get_mrl WRITE set_mrl ) + Q_PROPERTY( QString path READ get_path WRITE set_path ) Q_PROPERTY( double position READ get_position WRITE set_position NOTIFY mediaPlayerPositionChanged ) Q_PROPERTY( double time READ get_time WRITE set_time NOTIFY mediaPlayerTimeChanged ) Q_PROPERTY( unsigned volume READ get_volume WRITE set_volume NOTIFY volumeChanged ) @@ -92,7 +93,7 @@ class QmlVlcPlayerProxy //QML Api QString get_vlcVersion(); - Q_INVOKABLE void play( const QString& mrl ); + Q_INVOKABLE void play( const QString& mrl, bool is_path = false ); Q_INVOKABLE void play(); Q_INVOKABLE void pause(); Q_INVOKABLE void togglePause(); @@ -104,6 +105,9 @@ class QmlVlcPlayerProxy QString get_mrl(); void set_mrl( const QString& mrl ); + QString get_path(); + void set_path( const QString& path ); + bool get_playing(); double get_length();