]> git.sesse.net Git - vlc/blobdiff - src/input/vlm_internal.h
dbus: fix single instance mode parameter type for previous track
[vlc] / src / input / vlm_internal.h
index 8609215d0a3f58ca160be656b02c553780d5b4f7..286912d083e69ccdf8ec1ba378fabca716d05988 100644 (file)
@@ -1,34 +1,31 @@
 /*****************************************************************************
  * vlm_internal.h: Internal vlm structures
  *****************************************************************************
- * Copyright (C) 1998-2006 the VideoLAN team
+ * Copyright (C) 1998-2006 VLC authors and VideoLAN
  * $Id$
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
- * 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 _VLM_INTERNAL_H
-#define _VLM_INTERNAL_H 1
+#ifndef LIBVLC_VLM_INTERNAL_H
+#define LIBVLC_VLM_INTERNAL_H 1
 
 #include <vlc_vlm.h>
+#include "input_interface.h"
 
 /* Private */
 typedef struct
@@ -39,11 +36,12 @@ 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;
+    vlc_object_t *p_parent;
+    input_item_t      *p_item;
+    input_thread_t    *p_input;
+    input_resource_t *p_input_resource;
 
 } vlm_media_instance_sys_t;
 
@@ -54,7 +52,7 @@ typedef struct
 
     struct
     {
-        input_item_t item;
+        input_item_t *p_item;
         vod_media_t *p_media;
     } vod;
 
@@ -67,7 +65,7 @@ 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;
@@ -87,13 +85,18 @@ 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;
+    unsigned     users;
 
+    /* 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 */
@@ -105,4 +108,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