Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
YangLei
libvlcpp
Commits
7eb7e720
Commit
7eb7e720
authored
Jun 16, 2020
by
Hugo Beauzée-Luyssen
Browse files
Don't expose TrackList anymore
parent
7a026fa6
Changes
3
Hide whitespace changes
Inline
Side-by-side
vlcpp/Media.hpp
View file @
7eb7e720
...
...
@@ -655,12 +655,19 @@ public:
* \return a vector containing all tracks
*/
#if LIBVLC_VERSION_INT >= LIBVLC_VERSION(4, 0, 0, 0)
std
::
shared_ptr
<
Track
List
>
tracks
(
libvlc_track_type_t
type
)
std
::
vector
<
Media
Track
>
tracks
(
libvlc_track_type_t
type
)
{
auto
trackList
=
libvlc_media_get_tracklist
(
*
this
,
type
);
using
TrackListPtr
=
std
::
unique_ptr
<
libvlc_media_tracklist_t
,
decltype
(
&
libvlc_media_tracklist_delete
)
>
;
TrackListPtr
trackList
{
libvlc_media_get_tracklist
(
*
this
,
type
),
&
libvlc_media_tracklist_delete
};
if
(
trackList
==
nullptr
)
return
nullptr
;
return
std
::
make_shared
<
TrackList
>
(
trackList
);
return
{};
auto
count
=
libvlc_media_tracklist_count
(
trackList
.
get
()
);
std
::
vector
<
MediaTrack
>
res
{};
for
(
auto
i
=
0u
;
i
<
count
;
++
i
)
res
.
emplace_back
(
libvlc_media_tracklist_at
(
trackList
.
get
(),
i
)
);
return
res
;
}
#elif LIBVLC_VERSION_INT >= LIBVLC_VERSION(3, 0, 0, 0)
std
::
vector
<
MediaTrack
>
tracks
()
...
...
vlcpp/MediaPlayer.hpp
View file @
7eb7e720
...
...
@@ -1843,12 +1843,19 @@ public:
#if LIBVLC_VERSION_INT >= LIBVLC_VERSION(4, 0, 0, 0)
std
::
shared_ptr
<
Track
List
>
tracks
(
libvlc_track_type_t
type
)
std
::
vector
<
Media
Track
>
tracks
(
libvlc_track_type_t
type
)
{
auto
trackList
=
libvlc_media_player_get_tracklist
(
*
this
,
type
);
using
TrackListPtr
=
std
::
unique_ptr
<
libvlc_media_tracklist_t
,
decltype
(
&
libvlc_media_tracklist_delete
)
>
;
TrackListPtr
trackList
{
libvlc_media_player_get_tracklist
(
*
this
,
type
),
&
libvlc_media_tracklist_delete
};
if
(
trackList
==
nullptr
)
return
nullptr
;
return
std
::
make_shared
<
TrackList
>
(
trackList
);
return
{};
auto
count
=
libvlc_media_tracklist_count
(
trackList
.
get
()
);
std
::
vector
<
MediaTrack
>
res
{};
for
(
auto
i
=
0u
;
i
<
count
;
++
i
)
res
.
emplace_back
(
libvlc_media_tracklist_at
(
trackList
.
get
(),
i
)
);
return
res
;
}
#endif
...
...
vlcpp/structures.hpp
View file @
7eb7e720
...
...
@@ -759,28 +759,5 @@ private:
#endif
#if LIBVLC_VERSION_INT >= LIBVLC_VERSION(4, 0, 0, 0)
class
TrackList
:
public
Internal
<
libvlc_media_tracklist_t
>
{
public:
explicit
TrackList
(
libvlc_media_tracklist_t
*
trackList
)
:
Internal
{
trackList
,
libvlc_media_tracklist_delete
}
{
}
size_t
count
()
const
{
return
libvlc_media_tracklist_count
(
*
this
);
}
MediaTrack
at
(
size_t
index
)
const
{
return
MediaTrack
{
libvlc_media_tracklist_at
(
*
this
,
index
)
};
}
};
#endif
}
// namespace VLC
#endif
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment