vlm_internal.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:3k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * vlm_internal.h: Internal vlm structures
  3.  *****************************************************************************
  4.  * Copyright (C) 1998-2006 the VideoLAN team
  5.  * $Id: a8c72fc714cf289a02ed56ed9e8e0836cb7c772a $
  6.  *
  7.  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23. #if defined(__PLUGIN__) || defined(__BUILTIN__) || !defined(__LIBVLC__)
  24. # error This header file can only be included from LibVLC.
  25. #endif
  26. #ifndef _VLM_INTERNAL_H
  27. #define _VLM_INTERNAL_H 1
  28. #include <vlc_vlm.h>
  29. #include "input_internal.h"
  30. /* Private */
  31. typedef struct
  32. {
  33.     /* instance name */
  34.     char *psz_name;
  35.     /* "playlist" index */
  36.     int i_index;
  37.     bool      b_sout_keep;
  38.     input_item_t      *p_item;
  39.     input_thread_t    *p_input;
  40.     input_resource_t *p_input_resource;
  41. } vlm_media_instance_sys_t;
  42. typedef struct
  43. {
  44.     vlm_media_t cfg;
  45.     struct
  46.     {
  47.         input_item_t *p_item;
  48.         vod_media_t *p_media;
  49.     } vod;
  50.     /* actual input instances */
  51.     int                      i_instance;
  52.     vlm_media_instance_sys_t **instance;
  53. } vlm_media_sys_t;
  54. typedef struct
  55. {
  56.     /* names "schedule" is reserved */
  57.     char    *psz_name;
  58.     bool b_enabled;
  59.     /* list of commands to execute on date */
  60.     int i_command;
  61.     char **command;
  62.     /* the date of 1st execution */
  63.     mtime_t i_date;
  64.     /* if != 0 repeat schedule every (period) */
  65.     mtime_t i_period;
  66.     /* number of times you have to repeat
  67.        i_repeat < 0 : endless repeat     */
  68.     int i_repeat;
  69. } vlm_schedule_sys_t;
  70. struct vlm_t
  71. {
  72.     VLC_COMMON_MEMBERS
  73.     vlc_mutex_t  lock;
  74.     vlc_thread_t thread;
  75.     /* */
  76.     int64_t        i_id;
  77.     /* Vod server (used by media) */
  78.     int            i_vod;
  79.     vod_t          *p_vod;
  80.     /* Media list */
  81.     int                i_media;
  82.     vlm_media_sys_t    **media;
  83.     /* Schedule list */
  84.     int            i_schedule;
  85.     vlm_schedule_sys_t **schedule;
  86. };
  87. int64_t vlm_Date(void);
  88. int vlm_ControlInternal( vlm_t *p_vlm, int i_query, ... );
  89. int ExecuteCommand( vlm_t *, const char *, vlm_message_t ** );
  90. void vlm_ScheduleDelete( vlm_t *vlm, vlm_schedule_sys_t *sched );
  91. #endif