mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-16 07:00:00 -05:00
node: add port and node params
Add a new struct spa_param_info that lists the available params on a node/port and if they are readable/writable/updated. We can use this to replace and improve the PARAM_List and also to notify property change and updates. Update elements and code to deal with this new param stuff. Add port and node info to most elements and signal changes. Use async enum_params in -inspect and use the param info to know which ones to enumerate. Use the port info to know what parameters to update in the remote-node.
This commit is contained in:
parent
3d25adc598
commit
499dd3ff22
52 changed files with 1979 additions and 1461 deletions
|
|
@ -34,7 +34,6 @@ extern "C" {
|
|||
/** different parameter types that can be queried */
|
||||
enum spa_param_type {
|
||||
SPA_PARAM_Invalid, /**< invalid */
|
||||
SPA_PARAM_List, /**< available params as SPA_TYPE_OBJECT_ParamList */
|
||||
SPA_PARAM_PropInfo, /**< property information as SPA_TYPE_OBJECT_PropInfo */
|
||||
SPA_PARAM_Props, /**< properties as SPA_TYPE_OBJECT_Props */
|
||||
SPA_PARAM_EnumFormat, /**< available formats as SPA_TYPE_OBJECT_Format */
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@ extern "C" {
|
|||
|
||||
static const struct spa_type_info spa_type_param[] = {
|
||||
{ SPA_PARAM_Invalid, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "Invalid", NULL },
|
||||
{ SPA_PARAM_List, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "List", NULL },
|
||||
{ SPA_PARAM_PropInfo, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "PropInfo", NULL },
|
||||
{ SPA_PARAM_Props, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "Props", NULL },
|
||||
{ SPA_PARAM_EnumFormat, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "EnumFormat", NULL },
|
||||
|
|
@ -57,16 +56,6 @@ static const struct spa_type_info spa_type_param[] = {
|
|||
#define SPA_TYPE_INFO_Param SPA_TYPE_INFO_OBJECT_BASE "Param"
|
||||
#define SPA_TYPE_INFO_PARAM_BASE SPA_TYPE_INFO_Param ":"
|
||||
|
||||
/* object with supported parameter id */
|
||||
#define SPA_TYPE_INFO_PARAM_List SPA_TYPE_INFO_PARAM_BASE "List"
|
||||
#define SPA_TYPE_INFO_PARAM_LIST_BASE SPA_TYPE_INFO_PARAM_List ":"
|
||||
|
||||
static const struct spa_type_info spa_type_param_list[] = {
|
||||
{ SPA_PARAM_LIST_START, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_LIST_BASE, spa_type_param },
|
||||
{ SPA_PARAM_LIST_id, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_LIST_BASE "id", spa_type_param },
|
||||
{ 0, 0, NULL, NULL },
|
||||
};
|
||||
|
||||
#define SPA_TYPE_INFO_Props SPA_TYPE_INFO_PARAM_BASE "Props"
|
||||
#define SPA_TYPE_INFO_PROPS_BASE SPA_TYPE_INFO_Props ":"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue