]> git.sesse.net Git - vlc/blobdiff - src/input/vlm_internal.h
Use var_Inherit* instead of var_CreateGet*.
[vlc] / src / input / vlm_internal.h
index b9a2c93a7c136a8dc8c7eeec9d390af62a2a78f0..03e58284db722399588c53ae97ea904f5c02372d 100644 (file)
  * 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 _VLM_INTERNAL_H
 #define _VLM_INTERNAL_H 1
 
 #include <vlc_vlm.h>
+#include "input_interface.h"
 
 /* Private */
 typedef struct
@@ -35,11 +40,11 @@ typedef struct
     /* "playlist" index */
     int i_index;
 
-    vlc_bool_t      b_sout_keep;
+    bool      b_sout_keep;
 
-    input_item_t    item;
-    input_thread_t  *p_input;
-    sout_instance_t *p_sout;
+    input_item_t      *p_item;
+    input_thread_t    *p_input;
+    input_resource_t *p_input_resource;
 
 } vlm_media_instance_sys_t;
 
@@ -50,7 +55,7 @@ typedef struct
 
     struct
     {
-        input_item_t item;
+        input_item_t *p_item;
         vod_media_t *p_media;
     } vod;
 
@@ -59,11 +64,11 @@ typedef struct
     vlm_media_instance_sys_t **instance;
 } vlm_media_sys_t;
 
-typedef struct 
+typedef struct
 {
     /* names "schedule" is reserved */
     char    *psz_name;
-    vlc_bool_t b_enabled;
+    bool b_enabled;
     /* list of commands to execute on date */
     int i_command;
     char **command;
@@ -83,13 +88,16 @@ struct vlm_t
 {
     VLC_COMMON_MEMBERS
 
-    vlc_mutex_t lock;
-
+    vlc_mutex_t  lock;
+    vlc_thread_t thread;
+    vlc_mutex_t  lock_manage;
+    vlc_cond_t   wait_manage;
+    /* tell vlm thread there is work to do */
+    bool         input_state_changed;
     /* */
     int64_t        i_id;
 
     /* Vod server (used by media) */
-    int            i_vod;
     vod_t          *p_vod;
 
     /* Media list */
@@ -101,4 +109,9 @@ struct vlm_t
     vlm_schedule_sys_t **schedule;
 };
 
+int64_t vlm_Date(void);
+int vlm_ControlInternal( vlm_t *p_vlm, int i_query, ... );
+int ExecuteCommand( vlm_t *, const char *, vlm_message_t ** );
+void vlm_ScheduleDelete( vlm_t *vlm, vlm_schedule_sys_t *sched );
+
 #endif