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

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * variables.h: object variables typedefs
  3.  *****************************************************************************
  4.  * Copyright (C) 2002-2006 the VideoLAN team
  5.  * $Id: dde10ae654e2ecba9b70755df9b5f8d77170aafc $
  6.  *
  7.  * Authors: Samuel Hocevar <sam@zoy.org>
  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 __LIBVLC_VARIABLES_H
  27. # define __LIBVLC_VARIABLES_H 1
  28. typedef struct callback_entry_t callback_entry_t;
  29. typedef struct variable_ops_t
  30. {
  31.     int  (*pf_cmp) ( vlc_value_t, vlc_value_t );
  32.     void (*pf_dup) ( vlc_value_t * );
  33.     void (*pf_free) ( vlc_value_t * );
  34. } variable_ops_t;
  35. /**
  36.  * The structure describing a variable.
  37.  * note vlc_value_t is the common union for variable values
  38.  */
  39. struct variable_t
  40. {
  41.     /** The variable's exported value */
  42.     vlc_value_t  val;
  43.     char *       psz_name; /**< The variable unique name */
  44.     uint32_t     i_hash;   /**< (almost) unique hashed value */
  45.     int          i_type;   /**< The type of the variable */
  46.     /** The variable display name, mainly for use by the interfaces */
  47.     char *       psz_text;
  48.     const variable_ops_t *ops;
  49.     /** Creation count: we only destroy the variable if it reaches 0 */
  50.     int          i_usage;
  51.     /** If the variable has min/max/step values */
  52.     vlc_value_t  min, max, step;
  53.     /** Index of the default choice, if the variable is to be chosen in
  54.      * a list */
  55.     int          i_default;
  56.     /** List of choices */
  57.     vlc_list_t   choices;
  58.     /** List of friendly names for the choices */
  59.     vlc_list_t   choices_text;
  60.     /** Set to TRUE if the variable is in a callback */
  61.     bool   b_incallback;
  62.     /** Number of registered callbacks */
  63.     int                i_entries;
  64.     /** Array of registered callbacks */
  65.     callback_entry_t * p_entries;
  66. };
  67. #endif