]> git.alsa-project.org Git - alsa-lib.git/commitdiff
control: Make ump_{endpoint|block}_info calls optional
authorTakashi Iwai <tiwai@suse.de>
Thu, 15 Aug 2024 14:25:11 +0000 (16:25 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 15 Aug 2024 14:26:33 +0000 (16:26 +0200)
Add the NULL check for ump_endpoint_info and ump_block_info calls.
Those can be NULl depending on the target.

Fixes: 81b0cf46d16a ("control: Add UMP Endpoint and Block info query support")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
src/control/control.c

index d77ab24cc69c49510ae6fb1f266f40a4dc1afc85..e443d5436103f1b45d977545c1195adfcc9b4b22 100644 (file)
@@ -1293,7 +1293,10 @@ int snd_ctl_ump_next_device(snd_ctl_t *ctl, int *device)
 int snd_ctl_ump_endpoint_info(snd_ctl_t *ctl, snd_ump_endpoint_info_t *info)
 {
        assert(ctl && info);
-       return ctl->ops->ump_endpoint_info(ctl, info);
+       fprintf(stderr, "%s:%d\n", __func__, __LINE__);
+       if (ctl->ops->ump_endpoint_info)
+               return ctl->ops->ump_endpoint_info(ctl, info);
+       return -ENXIO;
 }
 
 /**
@@ -1305,7 +1308,9 @@ int snd_ctl_ump_endpoint_info(snd_ctl_t *ctl, snd_ump_endpoint_info_t *info)
 int snd_ctl_ump_block_info(snd_ctl_t *ctl, snd_ump_block_info_t *info)
 {
        assert(ctl && info);
-       return ctl->ops->ump_block_info(ctl, info);
+       if (ctl->ops->ump_block_info)
+               return ctl->ops->ump_block_info(ctl, info);
+       return -ENXIO;
 }
 
 /**