]> git.sesse.net Git - vlc/blobdiff - src/video_output/control.h
LGPL
[vlc] / src / video_output / control.h
index 0586f4cdf96c475a12cad588bba8797506b2b0f5..2e25cb856c31dfd5da5405b548ac98103d5d56b6 100644 (file)
@@ -6,40 +6,42 @@
  *
  * Authors: Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-#if defined(__PLUGIN__) || defined(__BUILTIN__) || !defined(__LIBVLC__)
-# error This header file can only be included from LibVLC.
-#endif
-
-#ifndef _VOUT_INTERNAL_CONTROL_H
-#define _VOUT_INTERNAL_CONTROL_H
+#ifndef LIBVLC_VOUT_INTERNAL_CONTROL_H
+#define LIBVLC_VOUT_INTERNAL_CONTROL_H
 
 /* */
 enum {
-#if 0
     VOUT_CONTROL_INIT,
-    VOUT_CONTROL_EXIT,
+    VOUT_CONTROL_CLEAN,
+    VOUT_CONTROL_REINIT,                /* cfg */
 
+#if 0
     /* */
     VOUT_CONTROL_START,
     VOUT_CONTROL_STOP,
 #endif
+    VOUT_CONTROL_SUBPICTURE,            /* subpicture */
+    VOUT_CONTROL_FLUSH_SUBPICTURE,      /* integer */
     VOUT_CONTROL_OSD_TITLE,             /* string */
     VOUT_CONTROL_CHANGE_FILTERS,        /* string */
+    VOUT_CONTROL_CHANGE_SUB_SOURCES,    /* string */
+    VOUT_CONTROL_CHANGE_SUB_FILTERS,    /* string */
+    VOUT_CONTROL_CHANGE_SUB_MARGIN,     /* integer */
 
     VOUT_CONTROL_PAUSE,
     VOUT_CONTROL_RESET,
@@ -65,6 +67,7 @@ typedef struct {
         mtime_t time;
         mtime_t *time_ptr;
         char    *string;
+        int     integer;
         struct {
             int a;
             int b;
@@ -89,6 +92,8 @@ typedef struct {
             unsigned width;
             unsigned height;
         } window;
+        const vout_configuration_t *cfg;
+        subpicture_t *subpicture;
     } u;
 } vout_control_cmd_t;
 
@@ -118,6 +123,7 @@ void vout_control_WaitEmpty(vout_control_t *);
 void vout_control_Push(vout_control_t *, vout_control_cmd_t *);
 void vout_control_PushVoid(vout_control_t *, int type);
 void vout_control_PushBool(vout_control_t *, int type, bool boolean);
+void vout_control_PushInteger(vout_control_t *, int type, int integer);
 void vout_control_PushTime(vout_control_t *, int type, mtime_t time);
 void vout_control_PushMessage(vout_control_t *, int type, int channel, const char *string);
 void vout_control_PushPair(vout_control_t *, int type, int a, int b);
@@ -129,4 +135,3 @@ int vout_control_Pop(vout_control_t *, vout_control_cmd_t *, mtime_t deadline, m
 void vout_control_Dead(vout_control_t *);
 
 #endif
-