[vlc-commits] input: name input event structs
Romain Vimont
git at videolan.org
Mon Aug 20 13:59:09 CEST 2018
vlc | branch: master | Romain Vimont <rom1v at videolabs.io> | Mon Aug 13 11:15:08 2018 +0200| [ee83628877583f131ca11cea3718dbe6a7d6c434] | committer: Romain Vimont
input: name input event structs
Some input event structs contain enums, whose values can be accessed
globally in C, but need a qualified access in C++. Since these enums are
defined inside unamed union and structs, there was no way to use them
from C++ code.
To avoid the problem, declare named structs for every event type
requiring more than one field.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ee83628877583f131ca11cea3718dbe6a7d6c434
---
include/vlc_input.h | 82 ++++++++++++++++++++++++++++++-----------------------
1 file changed, 47 insertions(+), 35 deletions(-)
diff --git a/include/vlc_input.h b/include/vlc_input.h
index 8911370e2b..bcac1e3fa5 100644
--- a/include/vlc_input.h
+++ b/include/vlc_input.h
@@ -395,6 +395,48 @@ typedef enum input_event_type_e
#define VLC_INPUT_CAPABILITIES_REWINDABLE (1<<3)
#define VLC_INPUT_CAPABILITIES_RECORDABLE (1<<4)
+struct vlc_input_event_position
+{
+ float percentage;
+ vlc_tick_t ms;
+};
+
+struct vlc_input_event_chapter
+{
+ int title;
+ int seekpoint;
+};
+
+struct vlc_input_event_program {
+ enum {
+ VLC_INPUT_PROGRAM_ADDED,
+ VLC_INPUT_PROGRAM_DELETED,
+ VLC_INPUT_PROGRAM_SELECTED,
+ VLC_INPUT_PROGRAM_SCRAMBLED,
+ } action;
+ int id;
+ union {
+ const char *title;
+ bool scrambled;
+ };
+};
+
+struct vlc_input_event_es {
+ enum {
+ VLC_INPUT_ES_ADDED,
+ VLC_INPUT_ES_DELETED,
+ VLC_INPUT_ES_SELECTED,
+ VLC_INPUT_ES_UNSELECTED,
+ } action;
+ const char *title;
+ const es_format_t *fmt;
+};
+
+struct vlc_input_event_signal {
+ float quality;
+ float strength;
+};
+
struct vlc_input_event
{
input_event_type_e type;
@@ -407,51 +449,21 @@ struct vlc_input_event
/* INPUT_EVENT_CAPABILITIES */
int capabilities; /**< cf. VLC_INPUT_CAPABILITIES_* bitwise flags */
/* INPUT_EVENT_POSITION */
- struct {
- float percentage;
- vlc_tick_t ms;
- } position;
+ struct vlc_input_event_position position;
/* INPUT_EVENT_LENGTH */
vlc_tick_t length;
/* INPUT_EVENT_TITLE */
int title;
/* INPUT_EVENT_CHAPTER */
- struct {
- int title;
- int seekpoint;
- } chapter;
+ struct vlc_input_event_chapter chapter;
/* INPUT_EVENT_PROGRAM */
- struct {
- enum {
- VLC_INPUT_PROGRAM_ADDED,
- VLC_INPUT_PROGRAM_DELETED,
- VLC_INPUT_PROGRAM_SELECTED,
- VLC_INPUT_PROGRAM_SCRAMBLED,
- } action;
- int id;
- union {
- const char *title;
- bool scrambled;
- };
- } program;
+ struct vlc_input_event_program program;
/* INPUT_EVENT_ES */
- struct {
- enum {
- VLC_INPUT_ES_ADDED,
- VLC_INPUT_ES_DELETED,
- VLC_INPUT_ES_SELECTED,
- VLC_INPUT_ES_UNSELECTED,
- } action;
- const char *title;
- const es_format_t *fmt;
- } es;
+ struct vlc_input_event_es es;
/* INPUT_EVENT_RECORD */
bool record;
/* INPUT_EVENT_SIGNAL */
- struct {
- float quality;
- float strength;
- } signal;
+ struct vlc_input_event_signal signal;
/* INPUT_EVENT_AUDIO_DELAY */
vlc_tick_t audio_delay;
/* INPUT_EVENT_SUBTITLE_DELAY */
More information about the vlc-commits
mailing list