[vlc-commits] core: playlist: add OSD support
Victorien Le Couviour--Tuffet
git at videolan.org
Thu Nov 15 16:23:41 CET 2018
vlc | branch: master | Victorien Le Couviour--Tuffet <victorien.lecouviour.tuffet at gmail.com> | Tue Nov 13 16:28:24 2018 +0100| [fab20590f76eb88bc36571020c1b1a75d18d8469] | committer: Thomas Guillem
core: playlist: add OSD support
Using the player OSD.
Signed-off-by: Thomas Guillem <thomas at gllm.fr>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fab20590f76eb88bc36571020c1b1a75d18d8469
---
src/playlist/control.c | 31 +++++++++++++++++++++++++++++++
src/playlist/player.h | 7 +++++++
2 files changed, 38 insertions(+)
diff --git a/src/playlist/control.c b/src/playlist/control.c
index 99c975bf64..b84fa6f2e1 100644
--- a/src/playlist/control.c
+++ b/src/playlist/control.c
@@ -27,6 +27,7 @@
#include "item.h"
#include "notify.h"
#include "playlist.h"
+#include "player.h"
static void
vlc_playlist_PlaybackOrderChanged(vlc_playlist_t *playlist)
@@ -53,6 +54,19 @@ vlc_playlist_PlaybackOrderChanged(vlc_playlist_t *playlist)
vlc_playlist_Notify(playlist, on_playback_order_changed, playlist->order);
vlc_playlist_state_NotifyChanges(playlist, &state);
+
+ char const *state_text = NULL;
+ switch (playlist->order)
+ {
+ case VLC_PLAYLIST_PLAYBACK_ORDER_NORMAL:
+ state_text = N_("Off");
+ break;
+ case VLC_PLAYLIST_PLAYBACK_ORDER_RANDOM:
+ state_text = N_("On");
+ break;
+ }
+ vlc_playlist_PlayerOSDMessage(playlist,
+ _("Random: %s"), vlc_gettext(state_text));
}
static void
@@ -72,6 +86,21 @@ vlc_playlist_PlaybackRepeatChanged(vlc_playlist_t *playlist)
vlc_playlist_Notify(playlist, on_playback_repeat_changed, playlist->repeat);
vlc_playlist_state_NotifyChanges(playlist, &state);
+
+ char const *mode = NULL;
+ switch (playlist->repeat)
+ {
+ case VLC_PLAYLIST_PLAYBACK_REPEAT_NONE:
+ mode = N_("Off");
+ break;
+ case VLC_PLAYLIST_PLAYBACK_REPEAT_ALL:
+ mode = N_("All");
+ break;
+ case VLC_PLAYLIST_PLAYBACK_REPEAT_CURRENT:
+ mode = N_("One");
+ break;
+ }
+ vlc_playlist_PlayerOSDMessage(playlist, _("Loop: %s"), vlc_gettext(mode));
}
enum vlc_playlist_playback_repeat
@@ -335,6 +364,7 @@ vlc_playlist_Prev(vlc_playlist_t *playlist)
}
vlc_playlist_SetCurrentIndex(playlist, index);
+ vlc_playlist_PlayerOSDMessage(playlist, _("Previous"));
return VLC_SUCCESS;
}
@@ -362,6 +392,7 @@ vlc_playlist_Next(vlc_playlist_t *playlist)
}
vlc_playlist_SetCurrentIndex(playlist, index);
+ vlc_playlist_PlayerOSDMessage(playlist, _("Next"));
return VLC_SUCCESS;
}
diff --git a/src/playlist/player.h b/src/playlist/player.h
index f6f54b792d..2566890315 100644
--- a/src/playlist/player.h
+++ b/src/playlist/player.h
@@ -31,4 +31,11 @@ vlc_playlist_PlayerInit(vlc_playlist_t *playlist, vlc_object_t *parent);
void
vlc_playlist_PlayerDestroy(vlc_playlist_t *playlist);
+#ifdef TEST_PLAYLIST
+#define vlc_playlist_PlayerOSDMessage(playlist, fmt...)
+#else
+#define vlc_playlist_PlayerOSDMessage(playlist, fmt...) \
+ vlc_player_vout_OSDMessage(playlist->player, fmt)
+#endif
+
#endif
More information about the vlc-commits
mailing list