* - VOLUME_CHANGED
* - INPUT_POSITION_CHANGED
*/
+
typedef enum {
VOLUME_CHANGED,
INPUT_POSITION_CHANGED,
} libvlc_event_type_t;
+typedef enum {
+ INT_EVENT,
+ BOOLEAN_EVENT,
+ FLOAT_EVENT,
+ STRING_EVENT,
+ ADDRESS_EVENT,
+ OBJECT_EVENT,
+ LIST_EVENT,
+ TIME_EVENT,
+ VAR_EVENT,
+} libvlc_event_value_type_t;
+
typedef struct
{
libvlc_event_type_t type;
+ libvlc_event_value_type_t value_type;
+ vlc_value_t old_value;
+ vlc_value_t new_value;
char reserved[8]; /* For future use */
} libvlc_event_t;
struct libvlc_callback_entry_t *entry = p_data;
libvlc_event_t event;
event.type = entry->i_event_type;
+ switch ( event.type )
+ {
+ case VOLUME_CHANGED:
+ event.value_type = BOOLEAN_EVENT;
+ break;
+ case INPUT_POSITION_CHANGED:
+ break;
+ default:
+ break;
+ }
+ event.old_value = oldval;
+ event.new_value = newval;
/* Call the client entry */
entry->f_callback( entry->p_instance, &event, entry->p_user_data );