From d04abec94ecba4c3f666d9e918a31523e9e430b6 Mon Sep 17 00:00:00 2001 From: Soomin Lee Date: Thu, 27 Sep 2018 18:40:39 +0200 Subject: [PATCH 14/17] libvlc: events: Add callbacks for record --- include/vlc/libvlc_events.h | 9 +++++++++ lib/media_player.c | 23 +++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/include/vlc/libvlc_events.h b/include/vlc/libvlc_events.h index 62a81104da..22730b35e1 100644 --- a/include/vlc/libvlc_events.h +++ b/include/vlc/libvlc_events.h @@ -31,6 +31,8 @@ # ifdef __cplusplus extern "C" { +# else +# include # endif typedef struct libvlc_renderer_item_t libvlc_renderer_item_t; @@ -119,6 +121,7 @@ enum libvlc_event_e { libvlc_MediaPlayerAudioVolume, libvlc_MediaPlayerAudioDevice, libvlc_MediaPlayerChapterChanged, + libvlc_MediaPlayerRecordChanged, /** * A \link #libvlc_media_t media item\endlink was added to a @@ -346,6 +349,12 @@ typedef struct libvlc_event_t const char *device; } media_player_audio_device; + struct + { + const char *file_path; + bool recording; + } media_player_record_changed; + struct { libvlc_renderer_item_t *item; diff --git a/lib/media_player.c b/lib/media_player.c index 58eec27ae9..4b41ce5e13 100644 --- a/lib/media_player.c +++ b/lib/media_player.c @@ -127,6 +127,28 @@ on_state_changed(vlc_player_t *player, enum vlc_player_state new_state, libvlc_event_send(&mp->event_manager, &event); } +static void +on_recording_changed(vlc_player_t *player, bool recording, void *data) +{ + (void) player; + + libvlc_media_player_t *mp = data; + + char *file_path = NULL; + if (!recording) { + file_path = var_GetString( mp, "record-file" ); + } + + libvlc_event_t event; + event.type = libvlc_MediaPlayerRecordChanged; + event.u.media_player_record_changed.file_path = file_path; + event.u.media_player_record_changed.recording = recording; + + libvlc_event_send(&mp->event_manager, &event); + + free(file_path); +} + static void on_error_changed(vlc_player_t *player, enum vlc_player_error error, void *data) { @@ -488,6 +510,7 @@ static const struct vlc_player_cbs vlc_player_cbs = { .on_media_subitems_changed = on_media_subitems_changed, .on_cork_changed = on_cork_changed, .on_vout_changed = on_vout_changed, + .on_recording_changed = on_recording_changed, }; static const struct vlc_player_aout_cbs vlc_player_aout_cbs = { -- 2.21.1 (Apple Git-122.3)