Browse Source

WIP: demo logger cb

Alexandre Janniaux 6 years ago
parent
commit
c554dd7809
  1. 21
      doc/libvlc/QtPlayer/player.cpp
  2. 3
      doc/libvlc/QtPlayer/player.h

21
doc/libvlc/QtPlayer/player.cpp

@ -18,6 +18,17 @@
#include <QVBoxLayout>
#include <QFileDialog>
void Mwindow::logger_cb(void *data, int, const libvlc_log_t *,
const char *fmt, va_list args)
{
Mwindow *window = static_cast<Mwindow*>(data);
libvlc_media_player_t *player = window->vlcPlayer;
fprintf(stderr, "Instance=%p: ", player);
vfprintf(stderr, fmt, args);
fprintf(stderr, "\n");
}
Mwindow::Mwindow() {
vlcPlayer = NULL;
@ -30,11 +41,18 @@ Mwindow::Mwindow() {
exit(1);
}
/* Initialize logger */
vlcLogger = libvlc_logger_new_callback(Mwindow::logger_cb,
static_cast<void*>(this));
/* Interface initialization */
initUI();
}
Mwindow::~Mwindow() {
if (vlcLogger)
libvlc_logger_release(vlcLogger);
/* Release libVLC instance on quit */
if (vlcInstance)
libvlc_release(vlcInstance);
@ -137,7 +155,8 @@ void Mwindow::openFile() {
return;
/* Create a new libvlc player */
vlcPlayer = libvlc_media_player_new_from_media (vlcInstance, vlcMedia);
vlcPlayer = libvlc_media_player_new_with_logger(vlcInstance, vlcLogger);
libvlc_media_player_set_media(vlcPlayer, vlcMedia);
/* Release the media */
libvlc_media_release(vlcMedia);

3
doc/libvlc/QtPlayer/player.h

@ -46,8 +46,11 @@ class Mwindow : public QMainWindow {
libvlc_instance_t *vlcInstance;
libvlc_media_player_t *vlcPlayer;
libvlc_logger_t *vlcLogger;
void initUI();
static void logger_cb(void *, int, const libvlc_log_t *,
const char *, va_list);
};

Loading…
Cancel
Save