view m_config.h @ 8644:0bfd73828e33

This patch fixes so that the exit code (or return code if you like) is set to zero when mplayer exits because of natural EOF or by the quit command. This can be useful if you (like me) use mplayer in scripts. patch by Oskar Liljeblad <oskar@osk.mine.nu>
author arpi
date Sun, 29 Dec 2002 21:06:20 +0000
parents ff6a98628e6c
children 39444d65c4cb
line wrap: on
line source


#ifndef NEW_CONFIG
#warning "Including m_config.h but NEW_CONFIG is disabled"
#else

typedef struct m_config_option m_config_option_t;
typedef struct m_config_save_slot m_config_save_slot_t;
struct m_option;
struct m_option_type;

struct m_config_save_slot {
  m_config_save_slot_t* prev;
  int lvl;
  unsigned char data[0];
};

struct m_config_option {
  m_config_option_t* next;
  char* name; // Full name (ie option:subopt)
  struct m_option* opt;
  m_config_save_slot_t* slots;
  unsigned int flags; // currently it only tell if the option was set
};

typedef struct m_config {
  m_config_option_t* opts;
  int lvl; // Current stack level
  int mode;
} m_config_t;


//////////////////////////// Functions ///////////////////////////////////

m_config_t*
m_config_new(void);

void
m_config_free(m_config_t* config);

void
m_config_push(m_config_t* config);

void
m_config_pop(m_config_t* config);

int
m_config_register_options(m_config_t *config, struct m_option *args);

int
m_config_set_option(m_config_t *config, char* arg, char* param);

int
m_config_check_option(m_config_t *config, char* arg, char* param);

struct m_option*
m_config_get_option(m_config_t *config, char* arg);

void
m_config_print_option_list(m_config_t *config);

/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Backward compat. stuff ////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////

typedef struct config config_t;
struct config {
  char *name;
  void *p; 
  struct m_option_type* type;
  unsigned int flags;
  float min,max;
  void* priv;
};


#define CONF_MIN		(1<<0)
#define CONF_MAX		(1<<1)
#define CONF_RANGE	(CONF_MIN|CONF_MAX)
#define CONF_NOCFG	(1<<2)
#define CONF_NOCMD	(1<<3)
#define CONF_GLOBAL	(1<<4)
#define CONF_NOSAVE	(1<<5)
#define CONF_OLD		(1<<6)

#define ERR_NOT_AN_OPTION	 -1
#define ERR_MISSING_PARAM	 -2
#define ERR_OUT_OF_RANGE	 -3
#define ERR_FUNC_ERR	 -4

#endif