5#ifndef PIPEWIRE_EXT_METADATA_H 
    6#define PIPEWIRE_EXT_METADATA_H 
   22#define PW_TYPE_INTERFACE_Metadata              PW_TYPE_INFO_INTERFACE_BASE "Metadata" 
   24#define PW_METADATA_PERM_MASK                   PW_PERM_RWX 
   26#define PW_VERSION_METADATA                     3 
   29#define PW_EXTENSION_MODULE_METADATA            PIPEWIRE_MODULE_PREFIX "module-metadata" 
   31#define PW_METADATA_EVENT_PROPERTY              0 
   32#define PW_METADATA_EVENT_NUM                   1 
   37#define PW_VERSION_METADATA_EVENTS              0 
   47#define PW_METADATA_METHOD_ADD_LISTENER         0 
   48#define PW_METADATA_METHOD_SET_PROPERTY         1 
   49#define PW_METADATA_METHOD_CLEAR                2 
   50#define PW_METADATA_METHOD_NUM                  3 
   54#define PW_VERSION_METADATA_METHODS             0 
 
   89        int (*
clear) (
void *object);
 
   93#define pw_metadata_method(o,method,version,...)                        \ 
   95        int _res = -ENOTSUP;                                            \ 
   96        spa_interface_call_res((struct spa_interface*)o,                \ 
   97                        struct pw_metadata_methods, _res,               \ 
   98                        method, version, ##__VA_ARGS__);                \ 
  102#define pw_metadata_add_listener(c,...)         pw_metadata_method(c,add_listener,0,__VA_ARGS__) 
  103#define pw_metadata_set_property(c,...)         pw_metadata_method(c,set_property,0,__VA_ARGS__) 
  104#define pw_metadata_clear(c)                    pw_metadata_method(c,clear,0) 
  106#define PW_KEY_METADATA_NAME            "metadata.name" 
  107#define PW_KEY_METADATA_VALUES          "metadata.values" 
A hook, contains the structure with functions and the data passed to the functions.
Definition hook.h:350