+/**
+ * Record prefix string.
+ * TODO make it configurable.
+ */
+#define INPUT_RECORD_PREFIX "vlc-record-%Y-%m-%d-%H:%M:%S-$ N-$ p"
+
+/*****************************************************************************
+ * Input events and variables
+ *****************************************************************************/
+
+/**
+ * \defgroup inputvariable Input variables
+ *
+ * The input provides multiples variable you can write to and/or read from.
+ *
+ * TODO complete the documentation.
+ * The read only variables are:
+ * - "length"
+ * - "can-seek" (if you can seek, it doesn't say if 'bar display' has be shown
+ * or not, for that check position != 0.0)
+ * - "can-pause"
+ * - "can-rate"
+ * - "can-rewind"
+ * - "can-record" (if a stream can be recorded while playing)
+ * - "teletext-es" to get the index of spu track that is teletext -1 if no teletext)
+ * - "signal-quality"
+ * - "signal-strength"
+ * - "cache" (level of data cached [0 .. 1])
+ *
+ * The read-write variables are:
+ * - state (\see input_state_e)
+ * - rate, rate-slower, rate-faster
+ * - position, position-offset
+ * - time, time-offset
+ * - title, next-title, prev-title
+ * - chapter, next-chapter, next-chapter-prev
+ * - program, audio-es, video-es, spu-es
+ * - audio-delay, spu-delay
+ * - bookmark (bookmark list)
+ * - record
+ * - frame-next
+ * - navigation (list of "title %2i")
+ * - "title %2i"
+ *
+ * The variable used for event is
+ * - intf-event (\see input_event_type_e)
+ */
+
+/**
+ * Input state
+ *
+ * This enum is used by the variable "state"
+ */
+typedef enum input_state_e
+{
+ INIT_S = 0,
+ OPENING_S,
+ PLAYING_S,
+ PAUSE_S,
+ END_S,
+ ERROR_S,
+} input_state_e;
+
+/**
+ * Input rate.
+ *
+ * It is an integer used by the variable "rate" in the
+ * range [INPUT_RATE_MIN, INPUT_RATE_MAX] the default value
+ * being INPUT_RATE_DEFAULT.
+ *
+ * A value lower than INPUT_RATE_DEFAULT plays faster.
+ * A value higher than INPUT_RATE_DEFAULT plays slower.
+ */
+
+/**
+ * Default rate value
+ */
+#define INPUT_RATE_DEFAULT 1000
+/**
+ * Minimal rate value
+ */
+#define INPUT_RATE_MIN 32 /* Up to 32/1 */
+/**
+ * Maximal rate value
+ */
+#define INPUT_RATE_MAX 32000 /* Up to 1/32 */
+
+/**
+ * Input events
+ *
+ * You can catch input event by adding a callback on the variable "intf-event".
+ * This variable is an integer that will hold a input_event_type_e value.
+ */
+typedef enum input_event_type_e
+{
+ /* "state" has changed */
+ INPUT_EVENT_STATE,
+ /* b_dead is true */
+ INPUT_EVENT_DEAD,
+
+ /* "rate" has changed */
+ INPUT_EVENT_RATE,
+
+ /* At least one of "position" or "time" or "length" has changed */
+ INPUT_EVENT_TIMES,
+
+ /* A title has been added or removed or selected.
+ * It imply that chapter has changed (not chapter event is sent) */
+ INPUT_EVENT_TITLE,
+ /* A chapter has been added or removed or selected. */
+ INPUT_EVENT_CHAPTER,
+
+ /* A program has been added or removed or selected */
+ INPUT_EVENT_PROGRAM,
+ /* A ES has been added or removed or selected */
+ INPUT_EVENT_ES,
+ /* "teletext-es" has changed */
+ INPUT_EVENT_TELETEXT,
+
+ /* "record" has changed */
+ INPUT_EVENT_RECORD,
+
+ /* input_item_t media has changed */
+ INPUT_EVENT_ITEM_META,
+ /* input_item_t info has changed */
+ INPUT_EVENT_ITEM_INFO,
+ /* input_item_t name has changed */
+ INPUT_EVENT_ITEM_NAME,
+
+ /* Input statistics have been updated */
+ INPUT_EVENT_STATISTICS,
+ /* At least one of "signal-quality" or "signal-strength" has changed */
+ INPUT_EVENT_SIGNAL,
+
+ /* "audio-delay" has changed */
+ INPUT_EVENT_AUDIO_DELAY,
+ /* "spu-delay" has changed */
+ INPUT_EVENT_SUBTITLE_DELAY,
+
+ /* "bookmark" has changed */
+ INPUT_EVENT_BOOKMARK,
+
+ /* cache" has changed */
+ INPUT_EVENT_CACHE,
+
+ /* A aout_instance_t object has been created/deleted by *the input* */
+ INPUT_EVENT_AOUT,
+ /* A vout_thread_t object has been created/deleted by *the input* */
+ INPUT_EVENT_VOUT,
+
+} input_event_type_e;
+
+/** @}*/
+