mirror of https://github.com/mpv-player/mpv
89 lines
3.5 KiB
C
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);
|