view m_property.h @ 18049:77a3b0d11ca5

Limit the number of entires to the amount that does fit into the chunk. the function need rewrite as it assumes quite many things that are not guaranteed by the specifications.
author iive
date Thu, 06 Apr 2006 20:04:02 +0000
parents f9cb6fc1608a
children faa148210f2b
line wrap: on
line source


// 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);

#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);