0014-libvlc-events-Add-callbacks-for-record.patch 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. From d04abec94ecba4c3f666d9e918a31523e9e430b6 Mon Sep 17 00:00:00 2001
  2. From: Soomin Lee <bubu@mikan.io>
  3. Date: Thu, 27 Sep 2018 18:40:39 +0200
  4. Subject: [PATCH 14/17] libvlc: events: Add callbacks for record
  5. ---
  6. include/vlc/libvlc_events.h | 9 +++++++++
  7. lib/media_player.c | 23 +++++++++++++++++++++++
  8. 2 files changed, 32 insertions(+)
  9. diff --git a/include/vlc/libvlc_events.h b/include/vlc/libvlc_events.h
  10. index 62a81104da..22730b35e1 100644
  11. --- a/include/vlc/libvlc_events.h
  12. +++ b/include/vlc/libvlc_events.h
  13. @@ -31,6 +31,8 @@
  14. # ifdef __cplusplus
  15. extern "C" {
  16. +# else
  17. +# include <stdbool.h>
  18. # endif
  19. typedef struct libvlc_renderer_item_t libvlc_renderer_item_t;
  20. @@ -119,6 +121,7 @@ enum libvlc_event_e {
  21. libvlc_MediaPlayerAudioVolume,
  22. libvlc_MediaPlayerAudioDevice,
  23. libvlc_MediaPlayerChapterChanged,
  24. + libvlc_MediaPlayerRecordChanged,
  25. /**
  26. * A \link #libvlc_media_t media item\endlink was added to a
  27. @@ -346,6 +349,12 @@ typedef struct libvlc_event_t
  28. const char *device;
  29. } media_player_audio_device;
  30. + struct
  31. + {
  32. + const char *file_path;
  33. + bool recording;
  34. + } media_player_record_changed;
  35. +
  36. struct
  37. {
  38. libvlc_renderer_item_t *item;
  39. diff --git a/lib/media_player.c b/lib/media_player.c
  40. index 58eec27ae9..4b41ce5e13 100644
  41. --- a/lib/media_player.c
  42. +++ b/lib/media_player.c
  43. @@ -127,6 +127,28 @@ on_state_changed(vlc_player_t *player, enum vlc_player_state new_state,
  44. libvlc_event_send(&mp->event_manager, &event);
  45. }
  46. +static void
  47. +on_recording_changed(vlc_player_t *player, bool recording, void *data)
  48. +{
  49. + (void) player;
  50. +
  51. + libvlc_media_player_t *mp = data;
  52. +
  53. + char *file_path = NULL;
  54. + if (!recording) {
  55. + file_path = var_GetString( mp, "record-file" );
  56. + }
  57. +
  58. + libvlc_event_t event;
  59. + event.type = libvlc_MediaPlayerRecordChanged;
  60. + event.u.media_player_record_changed.file_path = file_path;
  61. + event.u.media_player_record_changed.recording = recording;
  62. +
  63. + libvlc_event_send(&mp->event_manager, &event);
  64. +
  65. + free(file_path);
  66. +}
  67. +
  68. static void
  69. on_error_changed(vlc_player_t *player, enum vlc_player_error error, void *data)
  70. {
  71. @@ -488,6 +510,7 @@ static const struct vlc_player_cbs vlc_player_cbs = {
  72. .on_media_subitems_changed = on_media_subitems_changed,
  73. .on_cork_changed = on_cork_changed,
  74. .on_vout_changed = on_vout_changed,
  75. + .on_recording_changed = on_recording_changed,
  76. };
  77. static const struct vlc_player_aout_cbs vlc_player_aout_cbs = {
  78. --
  79. 2.21.1 (Apple Git-122.3)