[vlc-devel] [PATCH 03/12] input: add Angle Event

Francois Cartegnie fcvlcdev at free.fr
Thu Apr 2 20:40:11 CEST 2020


---
 src/input/event.h          | 9 +++++++++
 src/input/input.c          | 3 +++
 src/input/input_internal.h | 9 +++++++++
 3 files changed, 21 insertions(+)

diff --git a/src/input/event.h b/src/input/event.h
index dd9aec4a87..1098227a49 100644
--- a/src/input/event.h
+++ b/src/input/event.h
@@ -123,6 +123,15 @@ static inline void input_SendEventSeekpoint(input_thread_t *p_input,
     });
 }
 
+static inline void input_SendEventAngle(input_thread_t *p_input,
+                                        unsigned char i_angle)
+{
+    input_SendEvent(p_input, &(struct vlc_input_event) {
+        .type = INPUT_EVENT_ANGLE,
+        .angle = { i_angle }
+    });
+}
+
 static inline void input_SendEventSignal(input_thread_t *p_input,
                                          double f_quality, double f_strength)
 {
diff --git a/src/input/input.c b/src/input/input.c
index 34f965ed19..74ea140d37 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -562,6 +562,9 @@ static void MainLoopDemux( input_thread_t *p_input, bool *pb_changed )
             *pb_changed = true;
         }
 
+        if( demux_TestAndClearFlags( p_demux, INPUT_UPDATE_ANGLE ) )
+            input_SendEventAngle( p_input, demux_GetAngle( p_demux ) );
+
         UpdateGenericFromDemux( p_input );
     }
 
diff --git a/src/input/input_internal.h b/src/input/input_internal.h
index 1391571eea..24cb57604b 100644
--- a/src/input/input_internal.h
+++ b/src/input/input_internal.h
@@ -99,6 +99,8 @@ typedef enum input_event_type_e
     INPUT_EVENT_TITLE,
     /* A chapter has been added or removed or selected. */
     INPUT_EVENT_CHAPTER,
+    /* Angle has been changed for the designated title. */
+    INPUT_EVENT_ANGLE,
 
     /* A program ("program") has been added or removed or selected,
      * or "program-scrambled" has changed.*/
@@ -200,6 +202,11 @@ struct vlc_input_event_chapter
     int seekpoint;
 };
 
+struct vlc_input_event_angle
+{
+    unsigned char angle;
+};
+
 struct vlc_input_event_program {
     enum {
         VLC_INPUT_PROGRAM_ADDED,
@@ -277,6 +284,8 @@ struct vlc_input_event
         struct vlc_input_event_title title;
         /* INPUT_EVENT_CHAPTER */
         struct vlc_input_event_chapter chapter;
+        /* INPUT_EVENT_ANGLE */
+        struct vlc_input_event_angle angle;
         /* INPUT_EVENT_PROGRAM */
         struct vlc_input_event_program program;
         /* INPUT_EVENT_ES */
-- 
2.25.1



More information about the vlc-devel mailing list