diff --git a/src/modules/module-avb/avdecc.c b/src/modules/module-avb/avdecc.c index 171fdee7e..1fbab3be5 100644 --- a/src/modules/module-avb/avdecc.c +++ b/src/modules/module-avb/avdecc.c @@ -253,10 +253,10 @@ struct server *avdecc_server_new(struct impl *impl, struct spa_dict *props) str = spa_dict_lookup(props, "ifname"); server->ifname = str ? strdup(str) : NULL; - if ((str = spa_dict_lookup(props, "milan")) != NULL) - server->milan = spa_atob(str); + if ((str = spa_dict_lookup(props, "milan")) != NULL && spa_atob(str)) + server->avb_mode = AVB_MODE_MILAN_V12; else - server->milan = false; + server->avb_mode = AVB_MODE_LEGACY; spa_hook_list_init(&server->listener_list); spa_list_init(&server->descriptors); diff --git a/src/modules/module-avb/internal.h b/src/modules/module-avb/internal.h index dff660b54..b28de1355 100644 --- a/src/modules/module-avb/internal.h +++ b/src/modules/module-avb/internal.h @@ -52,13 +52,27 @@ struct descriptor { void *ptr; }; + +enum avb_mode { + /** The legacy AVB Mode */ + AVB_MODE_LEGACY, + /** + * \brief Milan version 1.2, which subset of the AVB, + * \see Milan Specifications https://avnu.org/resource/milan-specification/ + */ + AVB_MODE_MILAN_V12, + + /** Future AVB mode will be added here if necessary */ + AVB_MODE_MAX +}; + struct server { struct spa_list link; struct impl *impl; char *ifname; /** Parsed from the configuration pipewire-avb.conf */ - bool milan; + enum avb_mode avb_mode; uint8_t mac_addr[6]; uint64_t entity_id; int ifindex;