media-session: add module to restore card profile

Save card profiles to file and restore.
This commit is contained in:
Wim Taymans 2020-08-13 17:01:47 +02:00
parent cf6ffcacb8
commit 4ad6c627a0
3 changed files with 347 additions and 2 deletions

View file

@ -78,6 +78,7 @@ int sm_access_flatpak_start(struct sm_media_session *sess);
int sm_access_portal_start(struct sm_media_session *sess);
int sm_metadata_start(struct sm_media_session *sess);
int sm_default_nodes_start(struct sm_media_session *sess);
int sm_default_profile_start(struct sm_media_session *sess);
int sm_alsa_midi_start(struct sm_media_session *sess);
int sm_v4l2_monitor_start(struct sm_media_session *sess);
int sm_libcamera_monitor_start(struct sm_media_session *sess);
@ -1792,7 +1793,7 @@ int sm_media_session_load_state(struct sm_media_session *sess,
return sfd;
if ((fd = openat(sfd, name, O_CLOEXEC | O_RDONLY)) < 0) {
pw_log_error("can't open file %s: %m", name);
pw_log_debug("can't open file %s: %m", name);
return -errno;
}
f = fdopen(fd, "r");
@ -1989,7 +1990,17 @@ static void do_quit(void *data, int signal_number)
pw_main_loop_quit(impl->loop);
}
#define DEFAULT_ENABLED "flatpak,portal,metadata,default-nodes,alsa-acp,alsa-seq,v4l2,bluez5,suspend-node,policy-node"
#define DEFAULT_ENABLED "flatpak," \
"portal," \
"metadata," \
"default-nodes," \
"default-profile," \
"alsa-acp," \
"alsa-seq," \
"v4l2," \
"bluez5," \
"suspend-node," \
"policy-node"
#define DEFAULT_DISABLED ""
static const struct {
@ -2003,6 +2014,7 @@ static const struct {
{ "portal", "manage portal permissions", sm_access_portal_start, NULL },
{ "metadata", "export metadata API", sm_metadata_start, NULL },
{ "default-nodes", "restore default nodes", sm_default_nodes_start, NULL },
{ "default-profile", "restore default profiles", sm_default_profile_start, NULL },
{ "alsa-seq", "alsa seq midi support", sm_alsa_midi_start, NULL },
{ "alsa-pcm", "alsa pcm udev detection", sm_alsa_monitor_start, NULL },
{ "alsa-acp", "alsa card profile udev detection", sm_alsa_monitor_start, "alsa.use-acp=true" },