mpv/m_property.h

89 lines
3.5 KiB
C

// Get the current value
#define M_PROPERTY_GET 0
// Get a string representing the current value
#define M_PROPERTY_PRINT 1
// Set a new value
#define M_PROPERTY_SET 2
// Set a new value from a string
#define M_PROPERTY_PARSE 3
// Increment the property
#define M_PROPERTY_STEP_UP 4
// Decrement the property
#define M_PROPERTY_STEP_DOWN 5
// Return values for the control function
#define M_PROPERTY_OK 1
#define M_PROPERTY_ERROR 0
// Returned when the property can't be used, for ex something about
// the subs while playing audio only
#define M_PROPERTY_UNAVAILABLE -1
// Returned if the requested action is not implemented
#define M_PROPERTY_NOT_IMPLEMENTED -2
// Returned when asking for a property that doesn't exist
#define M_PROPERTY_UNKNOWN -3
// Returned when the action can't be done (like setting the volume when edl mute)
#define M_PROPERTY_DISABLED -4
typedef int(*m_property_ctrl_f)(m_option_t* prop,int action,void* arg);
int m_property_do(m_option_t* prop, int action, void* arg);
char* m_property_print(m_option_t* prop);
int m_property_parse(m_option_t* prop, char* txt);
void m_properties_print_help_list(m_option_t* list);
char* m_properties_expand_string(m_option_t* prop_list,char* str);
// Helpers to use MPlayer's properties
m_option_t* mp_property_find(char* name);
int mp_property_do(char* name,int action, void* val);
// Helpers for property implementations
#define M_PROPERTY_CLAMP(prop,val) do { \
if(((prop)->flags & M_OPT_MIN) && (val) < (prop)->min) \
(val) = (prop)->min; \
else if(((prop)->flags & M_OPT_MAX) && (val) > (prop)->max) \
(val) = (prop)->max; \
} while(0)
// Implement get
int m_property_int_ro(m_option_t* prop,int action,
void* arg,int var);
// Implement set, get and step up/down
int m_property_int_range(m_option_t* prop,int action,
void* arg,int* var);
// Same but cycle
int m_property_choice(m_option_t* prop,int action,
void* arg,int* var);
// Switch betwen min and max
int m_property_flag(m_option_t* prop,int action,
void* arg,int* var);
// Implement get, print
int m_property_float_ro(m_option_t* prop,int action,
void* arg,float var);
// Implement set, get and step up/down
int m_property_float_range(m_option_t* prop,int action,
void* arg,float* var);
// float with a print function which print the time in ms
int m_property_delay(m_option_t* prop,int action,
void* arg,float* var);
// Implement get, print
int m_property_double_ro(m_option_t* prop,int action,
void* arg,double var);
// get/print the string
int m_property_string_ro(m_option_t* prop,int action,void* arg, char* str);